太和二十三年(公元499),孝文帝元宏去世,其子元恪即位,是为宣武帝。宣武帝即位时,才十几岁,朝政由外戚高肇把持,北魏政治趋于混乱。延昌四年(公元515),宣武帝去世,其子7岁的元诩即位,是为孝明帝。由于元诩年幼,所以由其母胡太后临朝。正光元年(公元520),胡太后的妹夫元叉与宦官刘腾密谋,将胡太后幽禁在北宫,元叉、刘腾开始执掌朝政,北魏的统治进入了黑暗时期。同时,北魏的王室贵族在生活上穷奢极欲,腐化堕落,卖官鬻爵,贿赂公行。地方官更是横征暴敛,百姓的赋税、徭役、兵役负担日趋繁重、百姓纷纷逃亡或依附豪强。此时,北魏已开始陷入极其严重的社会危机之中。各阶层人民由于不堪重负,被迫揭竿而起,一场声势浩大的起义运动开始了。
北魏在迁都洛阳之前,首都设在平城(今山西大同)。为了保卫首都不受北方的柔然、高车、山胡等游牧民族的侵袭,北魏政府在平城北部自东向西设置了怀荒(今河北张北)、柔玄(今内蒙古兴和西北)、抚冥(今内蒙古四王子旗东南)、武川(今内蒙古武川西)、怀朔(今内蒙古固阳西南)、沃野(今内蒙古五原东北)等六个军事据点,称为六镇。六镇均设有镇都大将,负责统兵镇守,由鲜卑贵族担任,镇兵也大多为拓跋族的氏族成员以及中原的强宗子弟,地位较高。随着北魏疆域的不断扩大,北魏政府开始强迫汉族及其他民族的豪强、酋帅迁徙到边镇。文成帝以后,又不断发配囚犯戍边,被称为“府户”。孝文帝迁都洛阳后,政治重心南移,六镇失去了军事上的重要地位,镇民的地位也随之日益下降。当时。进入中原的各族贵族汉化进程迅速、而六镇却依然保持着鲜卑族特色。六镇民被中原贵族视为“北人”、备受歧视。两者之间的差距逐渐加大,矛盾日趋尖锐。
北魏元纂墓志正光四年(公元523),在柔然的不断侵袭威胁下,怀荒镇民请求镇将武卫将军于景打开公仓,发放粮食,以抵御外敌。不料于景不允,镇民在盛怒之下杀死了于景,从而点燃了六镇起义的战火。
正光五年(公元524)三月,沃野镇民破六韩拔陵也聚众起义,杀死了沃野镇下属的一个戍主,攻占了沃野镇,建元真王。随后,破六韩拔陵率众南下,又派遣别帅鲜卑人卫可孤率军围攻武川、怀朔两镇。怀朔镇将杨钧以贺拔度拔为统军,率其三子贺拔允、贺拔胜、贺拔岳,领兵抵御起义军。面对起义军的强大攻势,北魏任命临淮王元彧都督北讨诸军事,率军镇压破六韩拔陵。四月,高平(今宁夏固原)镇民赫连恩等起义,推举敕勒酋长胡琛为高平王,攻下高平镇,响应破六韩拔陵。但不久被北魏卢祖迁击破,胡琛北逃。与此同时,卫可孤攻陷了武川、怀朔两镇,贺拔度拔、贺拔胜父子被起义军俘获。五月,破六韩拔陵大败临淮王元彧于五原(今内蒙古包头西北),又在白道(今呼和浩特西北)击败北魏安北将军李叔仁。首战失败后,北魏又以尚书令李崇代替元或为北讨大都督,以抚军将军崔暹、镇军将军元渊受其节度,进攻起义军。七月,破六韩拔陵在白道又大败崔暹,魏军损失惨重,李崇被迫退守云中(今内蒙古和林格尔西北),与之相持。八月,东西两部高车相继背叛北魏,依附破六韩拔陵,起义军队伍更加壮大。至此,六镇皆反,均被起义军所占领。
北魏见义军声势浩大,不得不寻求外援,请柔然协助镇压各地起义军。孝昌元年(公元525)初,柔然主阿那瓌(gui)应北魏之邀,率10万大军,自武川西向沃野,助魏镇压六镇起义。六月,破六韩拔陵在五原围攻元渊军队,交战不利,被迫撤退。为了进一步削弱起义军力量,元渊派于谨说服了曾经依附破六韩拔陵的西部高车酋长乜列河等,率3万余户背叛破六韩拔陵,依附北魏。破六韩拔陵领兵截击,在元渊和柔然阿那瓌军队的夹击下,起义军大败,义军20万人都被元渊所截获。北魏政府派遣黄门侍郎杨昱将这些六镇降户分别迁徙到定(今河北定县)、冀(今河北冀县)、瀛(今河北河间)三州就食,破六韩拔陵下落不明,可能被柔然所杀。至此,六镇起义宣告失败。
六镇起义失败后,又爆发了声势浩大的河北起义。
孝昌元年(公元525)八月,柔玄镇兵杜洛周率领到河北就食的“六镇降户”在上谷(今北京延庆)起义,攻陷州县,包围燕州(州治在今河北涿鹿)。此后,杜洛周又攻下了幽州、定州和瀛州。
不久,怀朔镇兵鲜于修礼等又率“六镇降户”在定州的左人城(今河北唐县西)起义。但鲜于修礼不久被别帅元宏业所杀,修礼部将葛荣又将元宏业杀死,继续领导起义军。在葛荣的领导下,起义军大败北魏军队,葛荣遂自称天子,建国号齐,改元广安。随后,葛荣杀死了杜洛周,占有了他的部众。又连续攻下殷州(州治在今河北隆尧东)、冀州、定州、瀛州和沧州,起义队伍迅速壮大至数十万,兵力强盛,直逼北魏京师洛阳。
武泰元年(公元528)八月,葛荣率军围攻相州(治所邺在今河北临漳西南)。北魏尔朱荣率精骑7000出滏口(今河北磁县西北),大败葛荣军队。葛荣兵败被俘,押至洛阳处死。河北起义宣告失败。
此后,葛荣余部韩楼、郝长又在蓟城继续率领义军起义,最终也被尔朱荣的军队镇压下去。
早在六镇起义之初(公元524),关陇地区的氐、羌、胡各族人民也举兵响应,一度声势浩大,攻占州县,但于普泰元年(公元531)失败。
北魏末年各族人民的大起义,沉重打击了腐朽的北魏王朝,加速了它的灭亡。同时,由于各族人民纷纷参加起义,也促进了民族大融合。