沈林子也是一员能将,他见姚绍分兵拒险,蒲阪水道又不易通过,立即建议王镇恶合檀道济独攻潼关。王镇恶采纳建议,招回檀道济军,猛攻潼关。
蒲阪守军虽然失去意义,但姚绍不敢召回,反而导致潼关兵少,被王镇恶一举攻克,姚绍后退百里,在定城再建防线,一面依险拒守,一面派姚洽、安鸾二将封锁水路,截断晋军粮道。负责殿后的晋将沈林子多次击败姚洽、安鸾等劫粮之军,斩杀姚洽。
此时,刘裕的船队抵达陕城(今河南三门峡),晋军士气更壮。刘裕命第三路主将沈田子率军一千从秦岭山中秘密前进,进驻青泥关(今陕西蓝田附近)。后秦皇帝姚泓正准备亲率大军来援姚绍,突见沈田子出现在蓝田,恐后路被断,于是决定先消灭沈田子,再与刘裕决战。
沈田子的军队只有刘裕的疑兵,只要袭扰姚泓主力即可,不料沈田子(沈林子之弟)也是一位猛人,竟然以千人之兵直冲秦军主力,秦军猝不及防,被杀万余人,这仗打得更令人无语。姚泓大惧,狼狈逃回灞上。姚绍前被重创,后失援军,气得吐血而死,东平公姚瓒代行兵权,又被王镇恶、沈林子击败。
自此长安以东秦军皆被击败,刘裕下令水陆并进,自渭水直取长安。后秦将军姚难率陇西之军回救长安,姚泓仿佛抓住了救命稻草一般,从灞水退至屯石桥(在长安附近),企图与姚难会师。
王镇恶看出此节,挑选骑兵千人,由骁将毛德祖率领,看姚泓比速度。毛德祖也很厉害,不仅跑得快,而且武艺高,阵斩姚难前锋部将姚强,又击溃了姚难军。姚泓赶到之时,姚难已经率溃兵逃入长安多时。姚泓慌忙派部将姚丕扼守渭桥,企图阻击王镇恶。王镇恶在渭桥东面弃舟上岸,大败姚丕。姚丕败军反冲入姚泓阵中,自相践踏,死者无数。姚泓单骑还宫,秦军主力全军覆灭。
第二天,王镇恶攻破长安平朔门,姚泓率皇子、文武官员跪地请降,后秦国灭亡。关中遗老引孙提壶,夹道欢迎晋军。刘裕入太极殿,见前朝遗物,不胜唏嘘。