淝水之战后,强大的前秦土崩瓦解了,拓跋部便乘机复国。北魏登国元年(386年),拓跋珪被诸部推戴,即位代王,并任命张兖为长史,许廉为右司马。同年,改国号为魏,表示已不愿再受晋朝的封号。
拓跋珪称帝后施行的重要措施就是务农息兵,并首先取得后燕(慕容垂)的援助,借以抵御内部诸部酋长的不稳定性。拓跋部属游牧民族,那些酋长往往叛服无常,不懂得要在一个固定的国家内服从一个国王对自己有什么益处。因此,在登国二年(387年),拓跋珪制定了一条措施,即在每次战争胜利后,按战功分赏给群臣将士应得的战利品。这使得诸部酋长和鲜卑兵可凭战功得利,由此而大大增加了他们的好战心理,不致随时叛逃。在取得内部的团结之后,登国三年(388年),魏便开始攻打库莫奚(东胡),并获大胜。登国四年(389年)破解如部与高车诸部。次年,又大破高车袁纥(回纥)部,并再于次年打败了拓跋部的世仇刘卫辰部(南匈奴的别支),缴获马三十余万匹,牛羊四百余万头。魏开始占据黄河以南(河套)的广大牧地,由于国力剧增,便开始窥视中原。
当时,占据北方广大地区的后燕国前来向拓跋部索取马匹,并扣留了拓跋部派往后燕的使臣,拓跋珪便决定断绝与之友好的关系。北魏登国十年(395年),后燕皇帝慕容垂下令太子慕容宝统兵8万,进攻北魏。张兖建议可暂退避其锋芒,拓跋珪率领部众退到河套一带。后燕出兵三个月,却未找到北魏主力。九月,传来慕容垂病逝的消息,慕容宝便烧毁准备渡河的船只,准备退兵。拓跋珪带领两万兵马,迅速渡过黄河,日夜追赶,到达参合陂(今山西大同东)西,截断后燕的退路,将后燕军队团团围住。慕容宝见势不好,抛弃大军,轻骑出逃。北魏兵乘机攻击。后燕大败,俘获的四五万人全被活埋杀死。后燕由此开始衰落。
魏皇始元年(396年),拓跋珪率大军四十余万攻打后燕,夺得并州(大同西南),同年,从林阱(属河北)进入河北,围攻后燕都城中山(今河北定县)。一年后,中山被攻陷,后燕的残部退到龙城(今辽宁朝阳)等。大河以北诸州全被北魏占有。北魏天兴元年(398年),拓跋部定都平城(大同)。次年,改称魏道武帝,至此南北朝对峙的局面,基本形成。
灭后燕之后,北魏迁徙原后燕境内的吏、民及鲜卑等杂夷36万,百工伎巧十余万人到魏京,给内徙的新民耕牛,计口授田,此发展农业。平城附近,被划为“王畿”。王畿之外,又设“方”、“维”,由皇帝直接派官管理。四“方”、四“维”合称“八国”,管理这些地方的官员称为“八部大夫”或“八部帅”。原来以游牧为业的鲜卑族人,便在此“八国”中定居下来,而原来的“部大人”(酋长)被皇帝任命的官员所替代。官员的主要职责变为监督和劝课农耕。朝廷按各地收入的多少,来考核官员的政绩。这种新的行政法令,使得北魏的政府结构得以转变,并使落后的游牧业过渡到了先进的封建式农业生产方式中,使新兴的北魏有了强大的物质力量为后盾。
天兴二年(399年),拓跋珪于京城设置太学,置五经博士,增生员三千。拓跋珪格外重视寻找汉族士大夫对他的支持,以利用汉族文化改造处于原始状态的鲜卑民族。崔宏归附北魏之后,把拓跋部的历史与汉族的历史联系起来,说黄帝最小的儿子昌意“受封北土”,是拓跋部的祖先,拓跋珪对此深表赞同。一次,拓跋珪问博士李先:“世界上什么东西最好,可以增长见识与智慧?”李先生回答说:“书籍。”于是拓跋珪就命郡县在民间搜罗书籍,送到京都。另一位博士公孙表,则把韩非的著作介绍给拓跋珪,告诉他如何做一个封建专权国家的皇帝。天兴四年(401年),拓跋珪亲祭先圣周公、先师孔子,并任用大量汉族士人作文官,依靠这些汉族文官的支持来建立封建政治制度的专治机构。
与此同时,北魏政府中的鲜卑贵族与皇帝之间的矛盾仍一直继续。鲜卑旧贵族在过去已不能容忍一个国王,在此时则更不能容忍一种新的体制下的皇帝,一有机会,便窥觎这一宝座。天赐三年(406年),拓跋珪下诏称:“人们认为汉高祖以布衣而得天下,这是错误的。汉高祖有天下是因为有天命。无天命而妄图非分,便会遭殃。”因而劝臣下安分知足,以“保荣禄于天气,流余庆于后世。”接着又下诏书,劝臣下不要争名夺利,要讲道义。此后,贵族有反对皇帝的许多都被处死,其中最著名者是拓跋珪的堂兄拓跋遵和拓跋仪。但同时,他自己也常常心怀疑虑,烦闷不安,或几天不吃饭,或通宵不眠,自言自语,见神见鬼。朝臣见他时,不小心说错一句话,或表情失常,便怀疑其心怀恶意,被当场处死。拓跋珪终精神失常,北魏永兴元年(409年),被其子拓跋绍杀死。年仅39岁。同年,拓跋珪太子拓跋嗣回平城,再杀拓跋绍,即帝位,是为魏明元帝。
魏明元帝称帝后,便采取拓跋部四部大人与大酋长共同管事的惯例,命长孙嵩、安同、崔宏等八大臣共听朝政,号称八公。又让燕凤、封懿等共议政事。鲜卑贵族和汉族士人都可参与朝政,使得北魏的紧张局面得以缓和。神端二年(415年),魏国已连年霜旱,平城附近不少民众被饿死。有人主张迁都到邺城(今河南安阳北)去,崔浩、周澹反对认为,山东人现不知鲜卑虚实,还认为人畜众多,如现在迁去,一旦见鲜卑人数有限,定会生轻侮之心。不如等明春草生,取马牛乳和蔬菜充饥,挨到秋熟,就可渡过难关。魏明元帝赞同他们的主张,但仍怕无法挨到来秋,便选穷困的本族人到山东定、相、冀三州,下令汉民每户出租米五十石来养活这些穷困人。
当时,北方鲜卑的又一支柔然开始强大起来,又有匈奴族铁弗部所建立的夏国在关中一带自称一霸,对北魏具有一定的威胁性。柔然还常常侵犯北魏的边境。泰常二年(417年),刘裕打后秦,后秦向北魏求救,拓跋嗣本想派一支精锐骑兵直逼彭城(江苏徐州)和寿春(安徽寿县),便向崔浩问计。崔浩以为现在“西有屈丐(夏),北有柔然”,出师对北魏不利。同年,宋武帝灭后秦,取得黄河以南州郡,魏则守黄河北岸,无力渡河相争,魏用兵机会大减,穷人增多,遇天灾就要饿死。秦常七年(422年),宋武帝死,魏明元帝立即大举渡河攻宋,崔浩极力谏阻未成。次年,魏夺得司州(治洛阳)全部,兖州、豫州大部。北魏在黄河以南取也得了许多州镇后,重新确立了南北两朝对立的形势。
泰常八年(423年),魏明元帝拓跋嗣死,其子拓跋焘继帝位,是为魏太武帝。魏太武帝是北魏历史上一位杰出的君主,在其在位期间,北魏的社会极为繁盛,他依靠崔浩的谋略和鲜卑人的慓悍,几乎战无不成胜。始光元年(424年)始,北魏开始大举进攻柔然,迫使它逃奔漠北,暂时不敢南犯。始光三年(426年),又分兵两路攻夏,一路攻长安,一路攻统万(夏都城,今陕西榆林西南),当年即克长安,次年又攻下了统万。神麝元年(428年),俘获了夏国君主赫连昌。神麝二年(429年),魏太武帝又一次进攻柔然。柔然大败,原来臣服于它的些高车等小部落乘机摆脱羁绊,被北魏降服的柔然达三十多万家,掳获马牛羊达几百万头,敕勒也有几十万人向北魏投降。另一部分柔然人向漠北逃亡。两年后,又攻取夏最后都城平凉,夏亡,魏取关中。太延二年(436年),灭后燕国,取辽河流域。太延五年(439年),灭北凉国,取凉州。至此,自晋永安元年(304年)开始的十六国大乱已经结束,黄河流域得到了统一。
平定北方之后,太平真君十一年(450年),魏太武帝认为进攻南方的时机已经成熟,便率大军南下攻宋。当时正是宋文帝在位,国力极强。魏宋大战,魏军无法攻克宋的重要城镇,便在城外大肆杀掠,尽量破坏。宋军民痛击魏军,魏死伤大半。次年,魏太武帝只得退兵平城。这次战败,大伤魏国元气,又遭国人怨恨,北魏从此害怕再与南朝交战。正平元年(451年),魏太武帝被宦官宗爱杀死。从此,魏始由盛转衰。