沈田子等人准备进攻峣柳。后秦主姚泓想亲自率军抵御刘裕的大军,又担心沈田子等人从后方袭击,于是想先击败沈田子等人,然后倾全国之力向东进军;他率领几万步兵、骑兵,突然抵达青泥。沈田子本来只是作为迷惑敌人的疑兵,所统领的士兵只有一千多人,听说姚泓率军到来,准备进攻;傅弘之认为兵力悬殊,劝阻他,沈田子说:“用兵贵在出奇制胜,不一定在于人多。况且如今我们与敌人兵力悬殊,形势上已无退路, 如果敌人加固包围圈,我们就无处可逃了。不如趁他们刚到,营阵还没布好,先逼近进攻,或许能立下战功。” 于是率领所部士兵率先进攻,傅弘之随后跟进。后秦军队将晋军团团包围了好几层。沈田子安抚士兵说:“各位冒险远道而来,正是为了今天的战斗,生死存亡在此一举,封侯的功业就在今天了!” 士兵们都踊跃呐喊,手持短兵器奋勇进攻,后秦军队大败,被斩杀的士兵有一万多人,晋军缴获了姚泓的车驾、服饰等御用物品,姚泓逃回灞上。
起初,刘裕因沈田子等人兵力较少,派遣沈林子率军从秦岭前往支援,等沈林子到达时,后秦军队已经战败,于是两人一起追击姚泓,关中各郡县大多暗中向沈田子表示归附。
辛丑日,太尉刘裕抵达潼关,任命朱超石为河东太守,让他与振武将军徐猗之在黄河以北与薛帛汇合,共同进攻蒲阪。后秦平原公姚璞与姚和都一起进攻他们,徐猗之战败身亡,朱超石逃回潼关。东平公姚赞派遣司马国璠引领北魏军队,跟在刘裕大军后方,伺机袭击。
王镇恶请求率领水军从黄河进入渭水,奔赴长安,刘裕同意了他的请求。后秦恢武将军姚难从香城领兵向西撤退,王镇恶追击他;后秦主姚泓从灞上领兵返回,驻守石桥作为姚难的援兵,镇北将军姚强与姚难合兵驻守泾水岸边,抵抗王镇恶。王镇恶派遣毛德祖进军攻击,击败了姚强、姚难的军队,姚强战死,姚难逃往长安。
东平公姚赞撤退驻守郑城,太尉刘裕进军逼近他。姚泓派姚丕守卫渭桥,胡翼度驻守石积,东平公姚赞驻守灞水以东,姚泓自己驻守逍遥园。
王镇恶逆着渭水向上游进军,乘坐蒙冲小舰(一种高速战船),划船的人都藏在舰内;后秦人看到战船前进却没有划船的人,都惊奇地认为是神仙下凡。壬戌日早晨,王镇恶抵达渭桥,命令士兵吃完饭,都拿着兵器登岸,后登岸的人斩首。士兵们全部登岸后,渭水水流湍急,战船都顺着水流漂走,很快就不见了踪影。当时姚泓率领的军队还有几万人。王镇恶告诫士兵说:“我们这些人的家都在江南,这里是长安的北门,离家有万里之遥,船只、衣服、粮食都已经顺着水流漂走了。现在进军作战如果获胜,就能功成名就、名声显扬;如果失败,就会尸骨无存、不能回家,没有其他选择了。你们努力吧!” 于是王镇恶亲自带头冲锋,士兵们踊跃争先,在渭桥大败姚丕的军队。姚泓领兵救援姚丕,却被姚丕的败兵踩踏,军队没交战就溃败了。姚谌等人都战死,姚泓独自骑马返回皇宫。王镇恶从平朔门进入长安,姚泓与姚裕等几百名骑兵逃往石桥。东平公姚赞听说姚泓战败,领兵赶去救援,军队却全部溃散离开。胡翼度向太尉刘裕投降。
姚泓准备出城投降,他的儿子姚佛念,年仅十一岁,对姚泓说:“晋人将会肆意满足他们的欲望,我们即使投降也必定不能幸免,不如自杀。” 姚泓怅然若失,没有回应,姚佛念登上皇宫的城墙,跳墙自杀而死。癸亥日,姚泓带着妻子儿女、文武大臣前往王镇恶的营门请求投降,王镇恶把他们交给下属官吏看管。长安城中有少数民族和汉族百姓六万多户,王镇恶以朝廷的恩德安抚慰问百姓,号令严格,百姓安居乐业。
九月,太尉刘裕抵达长安,王镇恶在灞上迎接他。刘裕慰劳王镇恶说:“成就我霸业的人,就是你啊!” 王镇恶拜了两拜道谢说:“这是明公的威望、各位将领的力量,我王镇恶有什么功劳呢!” 刘裕笑着说:“你是想学冯异(东汉开国功臣,以谦逊不居功闻名)吗?” 王镇恶生性贪婪,后秦国库充实,他盗取的财物多得数不清;刘裕因为他功劳大,没有追究。有人向刘裕进谗言说:“王镇恶藏匿了姚泓的皇帝车驾,将会有谋反的心思。” 刘裕派人暗中观察,发现王镇恶只是刮取了车驾上的金银,把车驾丢弃在墙边,刘裕这才安心。
刘裕收缴后秦的礼器、浑仪(天文观测仪器)、土圭(测日影定节气的仪器)、记里鼓车(计算里程的车)、指南车,送往建康。其余的金银、丝绸、珍宝,都赏赐给将士们。后秦平原公姚璞、并州刺史尹昭献出蒲阪投降,东平公