定都洛阳后,这场斗争仍未中止。而出人意料的竟是太子元恂带头对抗迁都,反对改革。太和十七年(公元493年),10岁的元恂被立为太子。孝文帝希望他认真读书,学习好本领,将来接班即帝位。可是,元恂对他父亲的教诲置若罔闻。他年纪不大,却身高体胖,一到夏季,洛阳天气燥热,就忍受不住,总怀念平城的生活。因此,经常对父亲表示不满。在禁止穿胡服的命令下达后,孝文帝送给他一些漂亮的汉装。他往旁边一扔,照旧穿上鲜卑衣服。中庶子高道悦多次劝说元恂要听父皇的话,他根本不理,还怀恨在心。太和二十年(公元496年)八月,孝文帝东巡嵩山。元恂趁机杀死高道悦,带领部分人马,轻骑逃奔平城。孝文帝得到消息后,途中折返洛阳,立即将元恂召回宫内,宣布了他的谋反罪状,废为庶人。后来元恂又想叛逃,孝文帝将他赐死。
魏孝文帝在位28年,亲政八载,励精图治,始终致力改革,推动了北方社会经济的发展,对各民族的相互融合和我国多民族国家的形成与发展起到了积极的作用。
从太和八年(公元484年)冯太后、孝文帝改革以来,就遇到了鲜卑贵族保守势力的强烈反对和抵制。然而,冯太后、孝文帝并没有退缩,他们力排众议,持之以恒,不断深化改革。
制定百官俸禄制度,使清廉之官得到补济,贪官污吏有所收敛。这是改革迈出的第一步。这项措施对那些侵占公物、勒索百姓的贵族、官吏却是个有力的限制,因而引起了他们的不满与忿恨。淮南王拓跋他公然提出停止俸禄制、恢复自筹费用的作法。冯太后召集群臣,当众批驳他,坚持施行俸禄制。外戚显贵、秦益二州刺史李洪之,经常搜刮巨额钱财。孝文帝将他赐死。在颁行俸禄制的当年秋季,中央政府派大吏巡视各地,先后有40多名守宰因贪赃枉法被处极刑。
实行三长制,废除了宗主督护制,这是国家有组织、有计划地检括户籍、搜揽苞荫户,扩大编户齐民的一项措施。这对世家大族来说是一次沉重的打击。中书令郑羲等人认为三长制言似可用,事实难行。冯太后指责道:“立三长,则课有常准,赋有恒分,苞荫之户可出,侥幸之人可止,何为而不可?”(《魏书·李冲传》)态度坚决地批驳了反对派。
孝文帝同鲜卑贵族保守势力斗争最激烈的问题,要算是迁都洛阳。以穆氏、陆氏、贺氏、刘氏、楼氏、于氏、嵇氏和尉氏为代表的达官显贵在国都平城经营了百余年,都有巨资的家业,谁也不愿迁移。另外,从塞外南下中原,风土民情,生活方式乃至气候环境,都不容易适应。当迁都的消息传到京城时,众人无不震惊,反对南迁的贵族、官僚大有人在。孝文帝又专程返回平城,劝说留守官员支持南迁。但是,保守官员恒州(今山西大同东北)刺吏穆泰,不仅对抗迁都,还蓄谋发动反叛。他与定州(今河北定县)刺史陆睿、安乐侯元隆等密商共推朔州(今内蒙古和林格尔南)刺史阳平王元颐为主,妄图推翻孝文帝。孝文帝闻讯后,立即令拓跋澄发并州(今山西晋源)、肆州(今山西忻县西北)兵讨伐,平定了穆泰等人的叛乱,保证了迁都计划的顺利进行。
孝文帝的改革使北魏国力大增。于是,他试图灭掉南齐,统一全国。从太和十八年(公元494年)十二月起,北魏兵分五路大举讨伐南齐,不克而归。二十一年(公元497年)二月,又发兵20万再战,仍无功而返。二十三年(公元499年)二月,南齐将领陈显达率兵四万围攻北魏马圈城(今河南邓县北)。三月,孝文帝带兵亲征,大败南齐军。班师回朝后,四月,他病重而死,时年33岁。