公元471年,献文帝把北魏的皇位传给了年仅5岁的拓跋宏(467-499),他就是历史上赫赫有名的孝文帝。孝文帝在祖母冯太后的教导下,从小就对汉族文化很有好感,而且对祖母冯太后非常孝顺。公元490年,冯太后去世,孝文帝亲政,这位精通儒家经典、才华过人的皇帝终于开始了真正意义上的乾纲独断。
孝文帝亲政后,决心延续祖母冯太后的改革,继续推行汉化政策,而摆在他面前最大的问题是迁都。当时北魏的都城在平城(今山西大同市东北),地理位置偏北,天气寒冷,暴雪风沙天气常见。恶劣的气候条件,难以适应经济的发展,离中原地区偏远,则不利于北魏对富饶的中原地区的控制,于是孝文帝就将都城迁到了古城洛阳,使北魏的统治中心南移。
大批鲜卑人拖家带口地来到洛阳后,仍然穿着鲜卑人的传统服饰,说着鲜卑人的话,过着游牧生活,根本无法适应迁都后的生活。为了稳定局面,孝文帝在迁都后立刻决定改革风俗,全面推行汉化政策。孝文帝下诏,规定鲜卑人和其他少数民族一律改穿汉人的衣服,文武百官也换穿汉族官吏的朝服。公元495年,孝文帝又下诏命令禁止使用胡语,一律改说汉话;所有迁到洛阳的鲜卑人死后全部葬在河南,不得再迁回平城。于是,迁到洛阳居住的鲜卑人开始经营土地,开始向汉族人学习耕种技术,北魏政权下的鲜卑人和汉人开始在文化、生产和风俗上日益融合。
第二年,雄心勃勃的孝文帝为了加快汉化过程,又下达了改名的诏令,命令鲜卑人的王公贵族将鲜卑人复杂的姓氏改为单音的汉姓,皇族拓跋氏改姓为元氏。改名令一下,鲜卑人纷纷摒弃了原来艰涩难懂的部族姓氏,改为和汉人相同的姓氏。为了恢复魏晋时期的门阀制度,孝文帝特意在鲜卑贵族和汉族官吏中划分姓的高低。孝文帝以功劳的大小和官职的高低作为评判原则,把姓氏分为甲、乙、丙、丁四个级别,将各州的汉人姓氏分为四海大姓、郡姓、州姓、县姓,使中原的门第等级观念发生了巨大的变动。
孝文帝的改革刚刚有了一个不错的局面,一场叛乱风潮就在鲜卑贵族的策动下爆发了。孝文帝的儿子元恂平时就讨厌汉人的儒家课本,而且他体态肥胖,讨厌炎热的洛阳,就趁着孝文帝出巡的机会,杀死了大臣高道悦,盗取了宫中御马,准备逃回平城,结果却被洛阳城中的禁军抓获。
第二天清晨,尚书陆赶快派人报告了孝文帝。孝文帝闻讯大怒,率领禁军星夜返回了洛阳。回到洛阳后,孝文帝立刻召见了元恂。被儿子气得半死的孝文帝,先是列举儿子的罪行,命令咸阳王元禧代替自己打了元恂一百多杖,然后宣布把元恂贬为庶人,将其发配河阳无鼻城。
就在元恂被贬的同时,北魏的桓州(州治所就在平城)刺史穆泰、定州刺史陆睿勾结了驻守平城的鲜卑贵族,准备占据桓、定二州谋反。孝文帝得知这一消息后,急忙派卧病在床的任城王元澄带军平乱。元澄也没有辜负孝文帝的信任,先派人悄悄入城作叛军的思想工作,然后再以大军围城,叛军顿时土崩瓦解,穆泰和陆睿也被抓获,针对变法的军事叛乱被镇压了下去。
公元499年春,正率领北魏大军南征萧齐的孝文帝身染重病,被迫退军返回洛阳。当大军行至古塘原时,孝文帝感觉自己恐怕熬不到洛阳,就下诏命北海王元祥、镇南将军王肃等六人共同辅政。孝文帝在病榻前对这六位大臣说:“我原想迁都洛阳,再带领你们扫平南方,统一国家。可想不到重病缠身,我恐怕要离开你们了。希望你们好好儿辅佐太子,兴旺我北魏,大家尽力去做吧。”四月一日,北魏少有的明君孝文帝病死于古塘原行宫,年仅33岁。