屯驻虎牢的宋司州刺史毛德祖立即派司马翟广去支援滑台,又檄令长社令王法政率五百名士兵驻守召陵,将军刘怜率两百名士兵驻守雍丘,以防御司马楚之。司马楚之率兵偷袭刘怜,未能得手,奚斤围攻滑台,也以失败告终,只有北魏尚书滑稽率兵成功偷袭仓垣。宋陈留太守严稜抵挡不住魏军,向奚斤投降。奚斤屯兵城下,仍无法攻下滑台城,便派人回平城求援。北魏主拓跋嗣亲自率领五万大军,越过恒岭,声援奚斤。令太子拓跋焘屯兵塞上,并斥责奚斤,促令他猛攻。
奚斤畏罪思奋,冒着箭林石雨,亲自督众登城,攻陷滑台。滑台守吏王景度力竭而逃,司马阳瓒战死。奚斤乘胜奔袭虎牢,赶走翟广,直抵虎牢城东。毛德祖边守边战,屡次大破魏军。魏军虽多被杀伤,但人多势众,始终不肯退去。
两边相持不下,北魏主又派黑矟将军于栗磾出兵河阳,进攻金墉。于栗磾是北魏有名的骁将,擅长用黑矟1,所以被封为黑矟将军。毛德祖忙令振威将军窦晃戍守河滨,堵截于栗磾。拓跋嗣随即令将军叔孙建进犯青、兖二州,从平原越过黄河。宋豫州刺史刘粹忙派属将高道瑾据守项城。徐州刺史王仲德亲自督兵驻守湖陆,与魏兵相持。北魏中领军娥清、期思侯、闾大肥又率兵赶来与叔孙建会师,联合进军碻磝。宋兖州刺史徐琰望风而逃。泰山、高平、金乡等郡相继被魏兵攻陷。叔孙建东入青州,镇守东阳城的青州刺史竺夔忙向建康求救。宋廷令南兖州刺史檀道济统帅全军,与冀州刺史王仲德一同出师东援。庐陵王刘义真也派龙骧将军沈叔貍,带三千名士兵去支援刘粹。
好不容易过了残冬,宋主刘义符改元景平,随即晋官封爵,南郊祭祀,颁诏大赦。京都里面,一派国泰民安景象,哪知河南的警信却日紧一日。北魏将军于栗磾渡黄河南下,与奚斤联合攻打宋军,振威将军窦晃等人都被杀败。于栗磾又进攻金墉城,河南太守王涓之弃城而逃,金墉沦陷,河洛失守。北魏主随即任命于栗磾为豫州刺史,令他镇守洛阳,虎牢因而更加吃紧。奚斤、公孙表两军合力攻扑虎牢,魏主又拨兵相助。毛德祖昼夜不懈,竭力抵御,并在城脚边凿通六个通往城外的地道,招募了四百名死士偷袭魏军。这群死士出了地道,恰好在魏营后面,一声呐喊,突然杀入魏兵军营。魏兵还以为他们是天外飞来,异常惊骇,一时反应不过来,被死士一阵扫荡,击毙数百名士兵。毛德祖趁势开城,出兵大战,又击毙数百名魏兵,然后召集死士一同回城。
过了几天,魏兵又将虎牢团团围住,展开更加急迫的攻势。毛德祖特别用了一出反间计,致信公孙表,表示愿意结约交好。公孙表收到信后,交给奚斤,表明自己没有二心。没想到,奚斤却对他起疑。毛德祖又发出第二封信,信函上的收信人是公孙表,信件却故意投入奚斤的营寨。奚斤展开一看,发现里面的内容竟比上封信更为亲密,便立即派人将这封信送给北魏主。北魏太史令王亮向来与公孙表不和,忙不失时机地对北魏主说:“公孙表有二心,陛下不可不防。”北魏主当即派人趁夜潜入公孙表的营帐,将他勒死。公孙表足智多谋,既然他已死,虎牢城外就少了一个敌手。毛德祖当然高兴,随后一攻一守,又坚持了好几个月。
北魏主拓跋嗣亲自赶到东郡,令叔孙建急攻东阳城,又任命刁雍为青州刺史,令他协助叔孙建攻城。刁雍与前豫州刺史刁逵同族,刁逵被杀,全族被诛。唯独刁雍脱逃,奔到后秦,后秦灭亡后又逃到北魏,北魏主任命他为将军。这时,调他去助叔孙建一臂之力,分明是借刀杀人。东阳守吏竺夔、济南太守桓苗调集东阳全城兵民共同抵御,与北魏军相持不下。时间一久,北魏军疲惫不堪,接着又传来檀道济的援军即将到来的消息,刁雍与叔孙建只得毁掉营垒,向西逃去。
檀道济到了临朐,因为粮草不够用,只好放弃追击敌军。竺夔因东阳城几乎已成废墟,一时之间无法修筑加固,于是移屯不其城,青州得以保全。
魏主因东路军丝毫没有进展,索性西趋河内,将全部兵力集中到虎牢城,亲自督军攻打。真是杀气弥空,战云蔽日。
虎牢被围困了两百多天,这两百天里没有一天停战过,刘宋劲兵几乎伤亡殆尽,怎么禁得起北魏大军的狠命进击?毛祖德拼死抵御,仍固守了二十多天。守城的士卒一个个眼睛生疮,面如枯柴,却仍然昼夜奋战,毫无二心。当时,檀道济出军湖陆,刘粹驻扎项城,沈叔貍屯驻高桥,但他们都畏惧魏兵的强盛,竟没有一人敢出兵援救。眼看着虎牢失陷,守将想护卫毛德祖出逃,毛德祖却大呼:“城亡我亡,城存我存!”仍率众继续抵抗,挺身死斗。
魏主传令军中,一定要生擒毛德祖。最终虎牢沦陷,司、兖、豫诸郡县都为北魏所有。北魏主劝毛德祖投降,毛德祖不肯屈节,最后因伤势过重而亡。