兩次攻蒲阪未下,劉裕這時纔不再執着於此城,決定先攻下長安,當下便整軍西進。再說姚紹準備撤兵西退的前夕,姚紹突然病重,臨終將兵權交予姚贊,說道“我年過六旬,無復所求。只恨不能與賊裕一戰,保全國家。望愛弟能盡心盡力,保我姚氏之社稷。”姚贊說道“兄長放心,我姚贊此身將與國共存亡!”之後姚贊領兵西退,與姚泓會和。
劉裕聽聞姚紹之死,大笑說道“姚紹氣蓋關中,威震三軍。他死秦兵必然奪氣。姚泓更無良將,我軍鼓行而前,將無強敵!”
王鎮惡水軍行至涇渭分水口,姚難與姚強領兵數千於涇上欲要阻攔。王鎮惡使毛德祖進擊,迅速將其擊敗,毛德祖臨陣斬殺姚強,姚難倉皇逃命,奔赴長安。
秦主姚泓見晉軍逼近長安,開始整合軍隊,猶有六萬餘兵力。他令姚丕將兵一萬五千北守渭橋,姚贊領五千人屯於灞東,自己領大軍屯於逍遙園。
王鎮惡一行繼續溯流而上,晉軍所乘艨艟船體狹長,行駛疾速,如離弦之箭。秦人第一次見此船,而艨艟船所開側窗又小,行船者都在船內,秦人看不到人,都驚以爲神。船行兩日兩夜,抵達渭橋。時天剛破曉,姚丕令數百弓箭手沿岸射擊,欲要阻其登陸。艨艟戰艦外有牛皮包裹,戰士盡皆在內,敵箭雖如雨下,晉軍仍毫髮無損。見敵軍箭勢稍弱,王鎮惡令前隊艨艟轉向,側面向河岸一字排開。打開船側弩窗,衆船齊發弩箭。這樣一來,秦軍可就遭了殃,紛紛中箭而斃,勢難阻擋,秦軍便撤退了回去。
王鎮惡尚未到渭橋時,姚難向姚丕諫道“以王鎮惡所乘船數來計,其兵力只有數千。我們可於其半渡之時,縱鐵騎衝突,不愁不能全殲!”姚丕不以爲然,“我已派出弓箭手去阻擊他們渡河了。”姚難說道“弓箭手只能阻其一時,攔不了他們上岸”。姚丕不耐煩“既然他們兵力不多,讓他們上岸又如何。我們以堂堂正正之師來一場大戰,讓他們見識下我大秦兵威!”姚難說道“兵者詭道,需以計謀取勝。況且自晉與我交戰以來,我們勝少敗多,士氣不振。渭橋若失守,長安難以保全啊!”姚丕這才使姚難領二千騎兵先行,自己整大軍隨後進發。
姚難在路上見到了敗退的弓箭手,心下有些吃驚,繼續前行,發現王鎮惡已帶軍全部登岸。姚難嘆道“真是神速啊!”想到此時攻擊,難以得利,便先退回與姚丕軍隊會和。
在登岸前,王鎮惡令所有軍士飽餐一頓,然後快速登岸。有故意逡巡者、借顧慢登者,王鎮惡立斬以示衆。全部登陸後,王鎮惡命令將所有船隻解纜,時正值水漲流急,倏忽間數百隻船順流而逝。軍士們面面相覷皆有懼色,王鎮惡淡定的說道“將士們,我們的家屬都在江南。這裡爲長安北門,離家萬里。今日我們進戰得勝,功名俱顯。若敗,舟楫已失,後退無路,屍骨無返。拿起手中兵器,奮勇向前吧!”既已置身死地,衆軍士都有了必死之心。
姚丕大軍已經來到,列陣分設左右翼與中軍。王鎮惡見敵軍戰線拉的很長,隊伍行列因之而薄,便準備集中兵力直突中軍。晨曦微露,秋氣涼爽,大家的精神也爲之一振。王鎮惡拔刀大呼“堂堂七尺男兒,當殺敵報國,有死無悔!”言畢奮舞雙刀率先狂奔向秦軍,毛德祖等緊隨其後,隊伍自然呈現出一“人”字形。王鎮惡率先與秦軍接觸,力斫前敵,當者立斃。“人”字形迅速插入敵軍。晉軍將士個個大呼陷陣,有進無退,刀創遍體,絲毫不顧,拼命而前。鮮血噴濺,黃沙亂揚。王鎮惡披髮怒吼,連斬數敵後,雙手刀自外而內將秦軍大將姚諶攔腰斬爲兩截,秦軍見者無不驚駭。秦軍數目雖多,頂不住晉軍個個死戰,慢慢呈現劣勢。“人”形頂端似尖刀般已扎入敵中軍核心。姚難見形勢危急,忙分兩翼騎兵繞至晉軍後方包圍之,晉軍後方在秦軍騎兵的強烈衝擊下,已然抵擋不住。
幸虧此時王鎮惡已突破中軍防線,距姚丕只有百餘步遠。姚丕在驚慌之下單騎逃跑,秦軍主力開始潰退,而中軍潰卒在奔逃時又擠入了兩翼的隊伍,秦軍自相驚亂,兩翼也因之而潰。攻至晉軍後方之秦軍雖一時得利,但見大勢已去,也都開始各自逃亡。鎮惡正自帶兵追趕姚丕部隊,忽見秦軍後方塵埃大起,無數旗幟飄揚而至。原來姚泓擔心渭橋有失,先派胡翼度將兵萬餘前往救援,自己帶剩餘軍隊繼之而進。
姚丕迅速收集散卒與胡翼度合軍,再戰鎮惡。王鎮惡此時開始心慌了,眼見就要勝利了,不料冒出這麼一支援軍。晉軍經此一番戰鬥傷損不少,難道自己今天果要葬身異域嗎?王鎮惡再想人生誰無一死,今番濺血黃沙也算終了男兒之志。向軍士們大聲說道“兄弟們,現在處此險境,我們拼死力戰,或有一線生機。即便失敗,戰死沙場也不枉了一世男兒。我王鎮惡要多殺幾個羌賊,先赴黃泉等衆兄弟去了……”於是王鎮惡舉雙刀再次衝入敵軍。
也就在此時,忽有颶風自東北而起,霎時間天地晦冥。飛沙走石,捲入秦軍中,秦軍難以向前,甚至連睜眼都難。王鎮惡大笑道“哈哈,好風!大風起兮軍威揚,猛士揮戈兮敵膽落……”晉軍將士得風之助,順風擊敵,秦軍前方軍卒爲晉軍所逼,擠向後面軍士。由於秦軍爲風所擾,咫尺間難辨敵我,自己軍卒互相擁擠,誤以爲是晉軍,開始自相擊殺,軍隊迅速潰亂,胡翼度也於亂中被己方軍士踐踏而死。當風清氣定時,秦軍已全面潰敗,如地頹山倒般崩散開來。姚丕乘輿爲晉軍所圍,亂槍刺死。姚難被毛德祖追及,斬落馬下。