刘裕既发兵讨秦,加领征西将军,兼司豫二州刺史。世子义符为中军将军,留监府事。左仆射刘穆之,领监军中军二府军司,入居东府,总摄表里。司马徐羡之为副,左将军朱龄石保卫殿省,徐州刺史刘怀慎保卫京师。摆设既定,然后西讨军出都,分作数路。龙骧将军王镇恶,冠军将军檀道济,自淮淝向许洛,新野太守朱超石,宁朔将军胡藩趋阳城,振武将军沈田子,建威将军傅弘之入武关,建武将军沈林子,彭城内史刘遵考,率水军出石门,自汴达河,又命冀州刺史王仲德为征虏将军,督领前锋,开钜野入河。刘穆之语镇恶道:“刘公委卿伐秦,卿宜尽力!”镇恶道:“我若不克关中,誓不复渡江。”当下各路解缆,连续西进。裕亦徐出彭城,连接前军捷报。王镇恶收伏漆邱,檀道济降项城,拔新蔡,下许昌,沈林子克仓垣,王仲德亦入滑台,好算是势如破竹,先声夺人了。
姚益男等闻洛阳沦陷,不敢再进,折回关中。刘裕使冠军将军毛修之往镇洛阳,再饬道济等进步。适西秦王炽磐,遣使诣裕,愿击秦自效。裕即表封炽磐为平西将军河南公,自引水军发彭城,策应前军。秦主泓方惶急得很,不防并州牧姚懿,到了陕津,误听司马孙畅计议,企图篡立,反背叛还攻长安。秦主急遣东平公姚绍等,引兵击懿。懿败被擒,孙畅伏法。接连是征北将军齐公姚恢,复自称多数督,饰辞入清君侧,自北雍州还趋长安,再由姚绍移军攻恢,恢方败死。懿为泓弟,恢为泓叔,不思共救国危,反接踵谋逆,真是姚氏气数。姚绍得进封鲁公,升官太宰,都督中外诸军事,率同武卫将军姚鸾等,拥兵五万,东援潼关。别遣副将姚驴守蒲坂。晋将王镇恶入渑池,进薄潼关,檀道济沈林子,自陕北渡河,打击蒲坂。蒲坂城坚难下,林子谓不若会同镇恶,合攻潼关。道济依议,便与林子回军,共至潼关下寨。姚绍开关搦战,被道济等纵兵奋击,丧亡千人,不得已退保定城,据险恪守,再令姚鸾反击晋军粮道,偏为晋将沈林子所料,夤夜袭鸾,把鸾击毙。绍又使东平公姚讚,截晋水军,亦被沈林子击败,奔回定城。
那晋将檀道济,进拔秦阳荥阳二城,直抵成皋。秦征南将军姚洸,屯戍洛阳,急向关中讨援。秦主泓遣武卫将军姚益男,越骑校尉阎生,合兵万三千人,往救洛阳。又令并州牧姚懿,南屯陕津,作为援助。姚益男等尚未到洛,晋军已降服成皋,打击柏谷。秦宁朔将军赵玄,劝洸据险恪守,静待援师,安知司马姚禹,已暗通晋军,但请洸出兵出战。洸即令赵玄,领兵千余,出堵柏谷坞,广武将军石无讳,出守巩城。玄临行时,泣语洸道:“玄受三帝重恩,该当效死。但公误信奸人,必贻悔怨。”说毕,即与司马骞鉴,驰往柏谷,正值晋军攻入,便与比武。晋军越来越多,玄兵只要千余,又无后继,如何反对得住?玄冒死突入,身中十余创,力不能支,据地大喊。司马骞鉴,抱玄泣下。玄凄声道:“我死此地,君宜速去。”鉴泣答道:“将军不济,鉴将何往?”遂相偕战死。不愧为姚氏忠臣。无讳至石阙奔还,姚禹逾城降晋。晋军直逼洛阳,四周围攻。姚洸待援不至,只好出降。檀道济俘得秦兵四千余名,或劝他悉加诛戮,封作京观。道济道:“讨伐吊民,正在本日,怎很多杀哩?”是极。因皆释缚遣归,入城安民,秦人大悦。