參合陂之戰(zhàn)后,燕魏兩國轉換了角色,拓跋氏取代了慕容氏北方霸主的地位,北魏勢力開始進入了中原。次年,拓跋珪趁后燕老皇帝慕容垂去世和政權新老交替之際,加上新皇帝慕容寶暗弱,他親率40余萬大軍南下,對后燕發(fā)起猛烈的攻擊。后燕軍隊猝不及防,很快被擊潰,北魏趁機奪取了后燕的大片領土。之后魏軍繼續(xù)乘勝追擊,后燕皇帝慕容寶倉皇逃回老巢龍城(遼寧朝陽)。于是拓跋珪正式稱帝,史稱道武帝。此后數(shù)年,道武帝不僅中原稱雄,同時連敗北部的柔然和關中的后秦。
后來北魏宮廷發(fā)生了一系列的人倫慘劇,首先是因為晚年的道武帝殘暴寡恩,被他的兒子拓跋紹所殺,拓跋紹又被太子拓跋嗣殺死。拓跋嗣繼位,他就是北魏歷史上的明元帝。明元帝繼位之后,北方并沒有統(tǒng)一,中原大地上還是數(shù)國并立,北魏在北方霸主的地位還是受到來自各方的挑戰(zhàn)。此時的北魏,東北面有北燕,西邊還要后秦及后起的夏,都對北魏構成威脅,同時還要西秦、南涼、北涼、西涼。更有長期困擾北魏的柔然部落,這個在北魏北面有強大的游牧族成為北魏的邊患。與此同時,南方代晉的劉宋政權又時不時的來一次北伐,因此說此時的北魏還是處在強敵環(huán)伺險境中。
拓跋嗣死后,他的兒子拓跋燾即位后,才走出困境,真正開始了統(tǒng)一北方的戰(zhàn)爭。其實北魏開始發(fā)動旨在統(tǒng)一天下的戰(zhàn)爭,在拓跋嗣時期就開始了。在劉裕死后,明元帝趁機奪取黃河以南虎牢(今河南滎陽西北)、洛陽、滑臺(今河南滑縣東)等軍事重鎮(zhèn)。但是魏軍也是死傷慘重,付出了極大的傷亡代價。而真正統(tǒng)一北方甚至為統(tǒng)一天下奠定堅實基礎的還是太武帝拓跋燾。拓跋燾首先“苦練內(nèi)功”,也就是先從內(nèi)政入手;他采取多項措施,如整頓稅制,充實國庫,引進人才,尤其引進了大批杰出的漢族人才為其所用,使北魏國力不斷增長,為日后統(tǒng)一北方奠定了經(jīng)濟基礎。
在數(shù)國并立的情況下,先對哪國下手被正式提上議事的日程。此時北魏大敗來犯的柔然,但是柔然主要是打游擊戰(zhàn),敵來我走,敵走我來,打一槍換一個地方,簡直討厭死了,因此北魏又稱柔然為蠕蠕,意思是像蠕動的蟲子一樣令人討厭。所以太武帝令群臣討論的時候,很多人都主張先徹底解決可惡的蠕蠕。但是太武帝的漢族謀士崔浩則主張先討伐夏國。夏國是拓跋部的死對頭匈奴族鐵弗部劉衛(wèi)辰的幼子劉勃勃(后改姓赫連氏)所建,是北方新興起一個比較強大的政權,已經(jīng)取代了后秦在關中地區(qū)的地位。赫連勃勃并在長安自立稱帝,建都統(tǒng)萬(陜西靖邊縣白城子)。赫連勃勃非常殘暴,很不得人心,所以崔浩認為,應該先討伐夏國。但是拓跋燾猶豫不決,等到赫連勃勃去世,赫連昌新繼位,國內(nèi)政局不穩(wěn),太武帝抓住這個機會,才最后下定決心攻打夏國。
太武帝親自率軍,渡過黃河,攻擊統(tǒng)萬。由于統(tǒng)萬城太過堅固沒能攻破,但但是魏軍還是殺了夏軍幾萬人,擄獲牛馬十多萬,斬獲頗豐。第二年,太武帝再次攻打統(tǒng)萬。由于統(tǒng)萬堅固,難以攻克,因此這次魏軍改變了策略;把主力埋伏在山谷中,派小股部隊誘敵出戰(zhàn)。赫連昌一開始堅守不出,但是魏軍逃兵投奔夏國,說魏軍軍糧已盡,后續(xù)部隊還是沒有趕到,趁這個機會,可以全殲魏軍。赫連昌聽了大喜,立即引兵出城追擊。于是兩軍開戰(zhàn),正當兩軍打得非常最激烈,太武帝馬失前蹄,險些被俘,后來又身中數(shù)箭,赫連昌見敵人敗的十分狼狽,就大舉追擊,不知不覺就離開了統(tǒng)萬城,結果他自己反倒進不了城了,只好逃往上邽(今甘肅天水)而去。
赫連昌逃走,統(tǒng)萬城中陷入混亂,哪里還有人再去防守,于是魏兵就進了統(tǒng)萬城。隨后魏軍繼續(xù)進攻上邽,赫連昌再退守平?jīng)?,魏軍繼續(xù)進攻,俘獲赫連昌。獲赫連昌被擒,其弟赫連定繼續(xù)守住平?jīng)?,并即位做皇帝,又從魏軍手里奪回長安。然而,這不過是垂死掙扎。不過兩年,魏軍終于攻克平?jīng)?,收復長安,平定了關中地區(qū)。赫連定投降了西秦,西秦被滅后,他繼續(xù)西逃,被吐谷渾擒獲,于是夏也滅亡了。赫連定雖然被吐谷渾人所擒,但是實際上夏國還是亡于北魏之手。
北魏在對夏的戰(zhàn)爭結束之后,再一次大舉出擊柔然,在漠北(今蒙古高原大沙漠以北地區(qū)),趁柔然沒有準備,幾乎全殲柔然軍隊,并威服高車,這一戰(zhàn)對柔然是巨大的打擊,從此柔然勢力大減,再也沒有力量對魏發(fā)動大規(guī)模的侵犯了。之后北魏的聲威達到極盛,西域的龜茲、疏勒、烏孫、鄯善、焉耆、車師以至破落那(大宛)、者舌(康居)等國都派使者與魏往來及吐谷渾滅夏后也遣使附魏。到這個時候,十六國中殘存的北燕、北涼二國自然難以存在。隨后魏發(fā)兵攻北燕,圍和龍(今遼寧朝陽),北燕的末代國君馮弘逃往高麗,后被高麗人所殺。解決了北燕之后,太武帝率軍攻北涼,圍姑臧(今甘肅武威)。北涼國王沮渠牧犍困守了一個半月,堅持不住,只得投降。十六國時期到此結束,北方再度統(tǒng)一,歷史正式進入了南北朝時期。