胡夏的新皇帝赫連定戰敗魏軍,生擒魏帥奚斤,收復關中後,卻沒有趁勢東進攻魏。結果,魏國從從容容地先在北邊打服了柔然,然後在南邊打跑了宋國後,剛騰出手來,便開始對付胡夏了。拓跋燾親率大軍從統萬城出發,進攻平涼。赫連定則從安定出兵,增援平涼,途中夏軍主力遇到魏將古弼所率一部。古弼雖然兵少,但利用伏兵獲勝,赫連定退守鶉觚原(今甘肅靈臺東北)。拓跋燾又派尉眷等數路軍隊與古弼匯合,以主力軍圍攻鶉觚原。由於夏軍在鶉觚原的營中無井,水源又被魏軍斷掉,夏軍無法堅守,只好突圍。經過血戰,赫連定帶一部軍隊逃到上邽,但大部分夏軍,以及赫連定的弟弟烏視拔禿骨等百餘名將相公侯全部被俘。
魏兵乘勝攻安定,夏將東平公乙鬥棄城逃往長安,逃到長安後還覺得不保險,又把長安也棄了,向西逃到上邽。
這時平涼城已經被魏軍包圍將近兩個月,拓跋燾一直不能攻下。赫連昌親自出面勸降也沒有用,直到夏國皇帝赫連定敗逃到上邽,平涼城的守將上谷公杜乾和廣陽公度洛弧才開城投降。魏將豆代田先帶兵入城,接收改編夏軍,並放出被關在監獄中的奚斤等魏將。
至此,魏國已經平定了相當於今天除漢中以外的陝西全境。西邊的涼州還有西秦和北涼在爭雄。不過西秦自從熾磐死後,他的兒子暮末在軍事上十分平庸,在與北涼的戰爭中屢屢失敗,喪失土地,一退再退;其政治能力也很糟糕,對內政刑酷濫,經濟生產衰退,國家越來越窮。暮末知道貧弱的西秦很快會被北涼滅亡,不得已只得向剛剛取得大勝的北魏投降。但胡夏的赫連定退守上邽後,也打算在這一片發展地盤,於是先進攻最弱的西秦。暮末不敢與胡夏軍交戰,退守南安。赫連定派叔父韋伐帶軍圍攻南安城,暮末本是乞降之國,根本無心交戰,守城十幾日後便出城請降。
暮末及其乞伏氏宗族五百餘人全部被赫連定殺死,西秦遂亡,時為公元431年1月。
胡夏滅亡西秦後,本來打算向北涼進攻,這時吐谷渾國的國君慕親率騎兵三萬人進襲。吐谷渾曾經向西秦、前秦和後秦稱臣或稱藩。公元417年,阿豺繼王位,國力日益強大。阿豺於公元423年向宋國稱藩,不久宋國發生政變,劉義隆繼位後封阿豺為驍騎將軍、沙州刺史。公元426年,阿豺病死。其同母弟慕被立為沙州刺史,宋國又將其封為隴西公。慕後來見北魏勢大,又向魏國稱藩,魏國封他為大將軍。胡夏攻滅已經向北魏投降的西秦,吐谷渾便以此為理由進攻胡夏。夏軍並沒有防備,渡黃河渡到一半時突然遭到吐谷渾的襲擊,前軍紛紛被逼到河中,大半人馬被淹死。赫連定帶殘軍撤退,吐軍過河追擊,再次擊敗夏軍,活捉赫連定。胡夏傳三世二十六年而亡,時為公元431年3月。慕派人把赫連定送到魏國,拓跋燾將赫連定斬首,慕立此功而被加封為西秦王。
北方四國的滅亡
前文說過,前秦苻堅的女婿楊定在隴西建立後仇池,苻登的兒子苻崇和楊定在與西秦的戰爭中被殺死,楊定叔父的兒子楊盛繼位後自稱徵西將軍、秦州刺史、仇池公。楊盛在位時曾向後秦稱藩。後秦滅亡後,楊盛又向東晉稱藩,被封為徵西大將軍、仇池王。宋國代晉後,封楊盛為車騎將軍、武都王。但楊盛仍認為仇池國為已經滅亡的東晉的臣藩,仍沿用東晉的義熙年號,不受宋國之封。
公元425年,楊盛病死。臨終前他對兒子楊玄說:“我一生為晉朝之臣,所以不向宋稱臣;但我死後,你就可以向宋帝稱藩了。”楊玄繼位後,遂接受宋國的封號,並用宋國的年號紀年。楊玄在四年後病亡,他的兒子楊保宗繼位,弟弟楊難當為監國。楊難當不久將楊保宗廢去,自稱都督雍、涼、秦三州軍事,兼徵西大將軍、秦州刺史、武都王。楊難當非但沒有殺害被自己廢掉的楊保宗,還重用楊保宗為將。西秦和胡夏滅亡後,楊難當趁機佔領上邽,由兒子楊順鎮守;佔領宕昌,任命楊保宗來鎮守。楊保宗當然不甘心就這麼被廢掉,他在宕昌密謀趁楊難當前來視察的時候發動政變,但計劃洩露,楊保宗被捕。不過楊難當仍然沒有殺他,只是把他關了起來。楊難當繼位後,轉向北魏稱藩,受封為徵南大將軍、南秦王。楊難當隨著地盤的增大,野心也鼓脹起來,他下一步的計劃是先攻取宋國的漢中,再奪川蜀,與魏、宋成三足鼎立之勢。
宋國樑州刺史甄法護由於能力有限,不能治理好地方,被劉義隆撤換,改派蕭思話為刺史。楊難當趁勢起兵攻打梁州。蕭思話正在路上,甄法護本來是被撤職的官吏,無心守土,於是放棄梁州,逃到洋州(今陝