公元417年三月,劉裕率領水軍從淮河和泗水入清河,準備溯河西上。他先派使者向北魏請求借路。後秦王姚泓也派使者向北魏求救。北魏君主拓跋嗣讓群臣商議對策。大家都認為不能不救後秦,隻有博士祭酒崔浩認為應當借路給劉裕。拓跋嗣還是聽從了大多數人的意見,於是任命司徒長孫嵩負責山東的軍事,又派振威將軍娥清和冀州刺史阿薄幹率領步騎十萬進駐黃河北岸。
三月初八,劉裕率軍進入黃河,同時任命左將軍向彌為北青州刺史,留下衛戍碻磝。
當初,劉裕命令王鎮惡等人說:“一旦攻克了洛陽,就必須等到大軍到了之後一塊前進。”王鎮惡等人則乘勝徑自直趨潼關,結果被秦兵擋住,無法繼續向前。久而久之,軍隊缺乏糧食,軍心開始動搖,有人想放棄輜重回頭去尋找劉裕的大軍。沈林子按劍怒道:“劉相公誌在統一神州。如今許昌和洛陽一帶已經平定,關中地區也會很快平定。事情成功與否,關鍵在於前鋒。你們這些話不是滅自己乘勝的威風,放棄垂成的大功嗎?況且大軍尚很遙遠,賊兵的勢力還很強盛。即使打算回頭,卻哪裏能回得了?下官授命不顧,今天的事情,我自己自然會替將軍解決了。不知道你們這兩三位主張後撤的君子,將用什麽臉麵去麵對劉相公的旗鼓!”王鎮惡等人於是派使者飛馬去稟報劉裕,請求趕快派糧草增援。劉裕把使者叫進他的戰船,打開船舫的北窗,指著黃河北岸的北魏大軍讓他看,然後說道:“我明明命令不要前進。如今你們輕率地深入敵境。現在岸上的情況這樣,讓我怎麽派軍糧給你們!”王鎮惡於是親自來到弘農,利用他在關中的各種關係,用種種辦法勸說曉諭當地的百姓。結果百姓爭著向晉軍送糧草,於是部隊的糧食問題得到了解決。
四月,後秦魯公姚紹派長史姚洽、寧朔將軍安鸞、護軍姚墨蠡、河東太守唐小方率領部眾三千進駐黃河北麵的九原,依仗黃河的天險,想以此斷絕檀道濟的糧草增援。沈林子伏擊並大敗他們,殺了姚洽、姚黑蠡、唐小方,秦兵要麽陣亡要麽被俘,幾乎全軍覆沒。沈林子因而啟奏劉裕說:“姚紹的名望雖然遍及關中,但他現在是兵屈於外,國危於內。我隻怕他死在兵敗之前,而不是我們的斧頭之下。”姚紹聽說姚洽等人戰敗而死,無比憤怒恚恨,氣得生病吐血。他把兵權交給東平公姚讚,不久便病逝了。姚讚取代姚紹後,兵力依然十分強盛。他帶兵襲擊沈林子,但被沈林子打敗。
秋七月,劉裕來到陝河。沈田子和傅弘之進入武關,後秦的衛戍將領都棄城逃走。沈田子等人進駐青泥。後秦君主姚泓派給事黃門侍郎姚和都進駐嶢柳抵禦晉軍。
劉裕的大軍接著抵達闅鄉。沈田子等人準備進攻嶢柳。姚泓打算親自帶兵抵禦劉裕,但又擔心沈田子等人會襲擊他的背後,便想先消滅了沈田子,然後再出動全國的兵力東出。於是他率領步騎數萬,大舉出兵來到青泥。沈田子本以為對方隻是疑兵,所以隻帶了一千多部眾。聽說姚泓大軍來到,他仍然打算出擊。傅弘之認為眾寡不敵,想勸止他。沈田子說:“兵法講究的是出奇製勝,而不在士兵的多少。況且如今眾寡懸殊,勢不兩立。如果對方把我們包圍得緊緊的,那麽我們就逃不出去了。不如趁他們剛到,陣營還沒來得及樹立,我們先下手猛攻,這樣完全可以成功。”於是率領他的部眾先行前進,傅弘之繼後。後秦軍將他們合圍了好幾重。沈田子激勵士兵說:“大家冒險遠來,要的就是今天的生死決戰。封侯的事業就在此一舉!”於是士兵無不踴躍鼓噪,手執短兵奮勇出擊。結果後秦士兵大敗,陣亡了一萬多人。沈田子還繳獲了後秦王的乘輿和禦服等皇家用品。姚泓逃回到灞上。
當初,劉裕因為沈田子等人的部眾人數太少,便派沈林子帶兵從秦嶺前往幫助他們。沈林子到時秦兵已敗,於是他們合並一道追擊秦軍。關中許多縣城也都暗中和沈田子聯係。
八月初二,劉裕抵達潼關,任命朱超石為河東太守,讓他和振武將軍徐猗之與薛帛在河北會合,然後一道進攻蒲阪。後秦平原公姚璞和姚和都共同出擊,結果徐猗之戰敗而死,朱超石則逃回到潼關。東平公姚讚派司馬國璠帶領魏兵跟在劉裕大軍的後頭。
王鎮惡請求率領水軍從黃河進入渭水,然後直趨長安,劉裕答應了。後秦恢武將軍姚難從香城帶兵退往西邊,王鎮惡窮起直追。姚泓從灞上帶兵回駐石橋作為姚難的聲援,鎮北將軍姚強則和姚難合兵進駐涇上抵禦王鎮惡。王鎮惡派毛德祖進擊打敗秦軍,結果姚強戰死,姚難逃回到長安。當時姚泓派姚諶守衛堯柳,派姚和都到河東討伐薛帛。姚和都聽說晉師出擊姚難,便兼程改道去救他,但還沒趕到姚難就已經戰敗。姚和都在河曲打敗劉裕的裨將後,進駐蒲阪。
東平公姚讚退駐鄭城,劉裕進軍威逼他。姚泓派姚丕守衛渭橋,派胡翼度進駐石積。姚讚則進駐灞東,姚泓進駐逍遙園。
王鎮惡沿著渭水逆流而上,他和士兵們都乘著一群蒙衝小艦,劃船的人都藏在艦內。後秦人看到這些小艦沒有劃船的人卻能快速前進,都嚇得以為他們是天神。八月二十三清晨,王鎮惡來到渭橋,讓將士們吃了早餐,然後全部手持長仗登岸,後登的人按軍法論斬。大家登上岸後,因為渭水湍急,那些小艦全都隨流漂走了,忽然之間不見蹤影。當時姚泓率領的部眾還有幾萬人。王鎮惡激勵士卒們說:“我們的家屬和老小都在江南。這裏是長安的北門,離家有萬裏之遙。如今舟楫和衣服糧食都已經隨流漂走了。現在我們要是進戰而勝,那麽大家都功成名就。不勝,那麽我們都骸骨不返。再沒其他路好走了。大家勉力吧!”於是自己身先士卒,直向敵軍衝殺過去。將士們也都奔騰踴躍,爭著前進,於是在渭橋大破姚丕。姚泓帶兵前來相救,結果反而被姚丕敗退的亂兵給踩踏蹂踐,不戰而潰。姚諶等人全都戰死,姚泓單馬逃回皇宮。王鎮惡從平朔門進入宮裏,姚泓和姚裕等人帶著數百騎逃到石橋。姚讚聽說姚泓敗了,便帶兵去和他會合,結果秦兵都失去了鬥誌,半路上就紛紛潰逃走了。胡翼度也投降了劉裕。
姚泓將要出降時,他才十一歲的兒子姚佛念勸姚泓說:“晉人將為所欲為,陛下即使投降也必然免不了一死,還不如自絕。”姚泓悵然所失,沒有回答。姚佛念自己爬上宮牆,跳下自殺而死。八月二十四,姚泓帶著妻兒和群臣往王鎮惡的壁壘軍門請降,王鎮惡把他們都交給部屬看管。城中的夷人和漢人有六萬多戶,王鎮惡都向他們曉諭國家的恩惠,盡量撫慰他們。他的軍隊號令嚴肅,因此百姓非常放心。
九月,劉裕來到長安。後秦平原公姚璞和並州刺史尹昭在蒲阪投降,東平公姚讚率領宗族一百多人也前往劉裕那裏投降,劉裕居然把他們都殺了。劉裕接著把姚泓送到建康,然後在東市處斬。劉裕任命薛辯為平陽太守,讓他鎮守捍衛北道。
到這時,後秦正式滅亡。後秦從太元九年(384)姚萇在渭北自稱萬年秦王後建國至今,立國總共33年。
劉裕占領長安後,那裏的西羌十多萬民眾往西逃往隴上。沈林子追擊他們直到槐裏,被俘虜的數以萬計。
在劉裕討伐後秦的期間,西北諸國基本完好。劉裕滅秦這年(417)春正月,西涼公李暠重病不起,派人送遺詔給長史宋繇說:“我死之後,世子就是愛卿的兒子了。請好好訓導他。”二月,李暠病逝,西涼的官屬奉世子李歆為大都督、大將軍、涼公、領涼州牧。李歆宣布大赦,改元嘉興,同時尊李歆母親天水尹氏為太後,任命宋繇錄三府政事。他還追諡李暠為武昭王,廟號太祖。
同時,西秦安東將軍木弈幹出擊吐穀渾酋長樹洛幹,在堯杆川打敗破他弟弟阿柴,俘虜了五千多戶人家後回來。樹洛幹退保白蘭山,逐慚因憤恨而生病。臨死前,他跟阿柴說:“我兒子拾虔年齡幼小虛弱,現在就把大事托付給你了。”樹洛幹去世後,阿柴繼立,自稱驃騎將軍、沙州刺史。他追諡樹洛幹為武王。阿柴接著入侵並兼並了鄰邦部落小種,把屬地拓廣了數千裏,於是成為關西又一個強國。
這期間,河西王(北涼)沮渠蒙遜派部將襲擊並擊潰烏啼部落;又出擊並降服了卑和部落。
四月,沮渠蒙遜大赦,然後派張掖太守沮渠廣宗詐降西涼,想以此引誘西涼公李歆。李歆果然發兵去接應。沮渠蒙遜親自率領三萬兵馬埋伏在蓼泉,但被李歆即使發覺,急忙撤軍回去。沮渠蒙遜窮起直追,和李歆軍隊在解支澗大戰,把西涼軍打得落花流水,殺了七千多人。沮渠蒙遜修複建康城,在那裏安置了衛戍後凱旋而歸。
九月,沮渠蒙遜得悉劉裕討伐後秦,非常憤怒。門下校郎劉祥入宮啟奏,沮渠蒙遜順便問群臣道:“你們知道劉裕入關了吧?覺得他怎麽樣?”大家都說:“姚泓並非劉裕的匹敵。而且他兄弟內叛,還怎能抗拒他人!劉裕奪取關中絕對毫無問題。然而劉裕一定不能久留,必將很快南歸,留下子弟以及諸將守衛關中。到那時我們奪取關中,將像路上拾起一根草芥那麽容易。”沮渠蒙遜於是秣馬礪兵,訓養士卒,並派兵進據安定。後秦嶺北的各個郡縣和鎮戍都投降了北涼。
劉裕為了安撫關西最大的割據勢力胡夏,便寫信給夏王赫連勃勃,要和他結為兄弟。赫連勃勃讓中書侍郎皇甫徽寫回信,但卻根本不用他寫的東西。當他麵對劉裕使者時,赫連勃勃親自口授舍人書寫回函。劉裕讀了他的書信後,歎道:“這麽好的文筆我是寫不出來的!”
劉裕攻克長安時,當時跑到那裏避難的東晉大臣司馬休之、司馬文思、司馬國璠、司馬道賜、魯軌、韓延之、刁雍、王慧龍以及桓溫的孫子桓道度、桓道子、族人桓謐、桓璲、陳郡人袁式等都投奔到北魏的長孫嵩那裏。後秦匈奴鎮將姚成都和弟弟姚和都也在自己的鎮所投降北魏。
十月,西秦王乞伏熾磐派左丞相乞伏曇達等人趁機出擊後秦大將姚艾,姚艾派使者向西秦稱藩。乞發熾磐於是任命姚艾為征東大將軍、秦州牧;同時征王鬆壽為尚書左仆射。
十一月,劉裕留在朝廷最親信的大臣劉穆之病逝。起初,劉裕打算留在長安去征服西北,但將佐們都久役思歸,多數人不想留下。恰巧劉穆之去世,劉裕覺得朝廷的根本失去依賴,決意東還。劉裕讓次子桂陽公劉義真作為安西將軍兼領雍州和東秦二州刺史留鎮長安。劉義真那時才十二歲。十二月初五,劉裕離開長安啟程回建康。
同時,氐族豪門徐駭奴和齊元子等人帶著部落三萬人在雍城,派使者向北魏請降。魏王拓跋嗣派將軍王洛生和河內太守楊聲等人西行去接應他們。
閏十二月,秦雍一帶幾千多家人推舉襄邑令上穀人寇讚為領袖,向北魏投降。拓跋嗣便順便拜寇讚為魏郡太守。久而久之,秦雍一帶的民眾流亡到北魏的河南、滎陽、河內等州郡的數以萬計。拓跋嗣於是安置南雍州,任命寇讚為刺史,封河南公,州治設在洛陽。寇讚善於招懷,流民前來歸附的是當初的三倍。
夏王赫連勃勃聽說劉裕打算東還,非常高興。他問大臣王買德道:“朕打算奪取關中,愛卿不妨試著談談進攻的方略。”王買德說:“關中地形優勝,而劉裕卻讓幼子守衛。他狼狽而歸,隻是打算急急忙忙去篡位而已,沒時間關顧中原的大事了。這是上天以關中賜我,陛下不能失去這一良機。青泥和上洛是南北的交通險要,陛下應當先派遊軍去占領它們。這樣我們就可以在東麵掌握潼關的要塞,斷絕他們水陸兩路。陛下然後可以傳檄三輔(長安附近),施以威德,那麽劉義真將成為網中之鱉,拿下他不在話下。”赫連勃勃於是任命兒子撫軍大將軍赫連璝負責前鋒軍事的都督,率領二萬騎兵向長安進發。他還派前將軍赫連昌進駐潼關,任命王買德為撫軍右長史,進駐青泥,赫連勃勃自己率領大軍為後繼。
公元418年正月,赫連璝抵達渭陽,關中民眾來臣服的比比皆是。東晉龍驤將軍沈田子帶兵抵禦,但害怕夏軍的強盛,便退駐劉回堡。接著東晉關中守將們發生內訌,沈田子殺了王鎮惡,自己也被劉義真的長史王修殺了。王修接著任命冠軍將軍毛修之取代王鎮惡為安西司馬。接著東晉大將傅弘之在池陽打敗赫連璝,又在寡婦渡再度打敗他,殺了很多士卒,夏兵這才退走。
要想知道西夏和東晉在關中後來的情況,請看下篇文章。