北魏在北方边境设立了六个镇,派了将士防守。公元523年,沃野镇(今内蒙古五原北)的匈奴人破六韩拔陵(破六韩是姓)首先带领兵士杀死镇将,发动起义。其他五个镇的兵士也纷纷响应,反对北魏的起义势力越来越大。由于北魏勾结北方的柔然族人共同镇压,六镇兵士的起义失败了。
北魏政府为了防止六镇兵民的反抗,把起义失败的六镇兵士20多万人都押送到冀州、定州、瀛州。这些兵在冀州又燃烧起起义的火焰。鲜卑族的葛荣率领起义军,进攻瀛州。北魏政府派章武王元融为大司马、广阳王元深为大都督,发动大军镇压。那些只知吃喝玩乐的贵族哪里会打仗。葛荣起义军到了博野镇(今河北省中部),就派出一支轻骑兵偷袭元融的大营。元融没有防备,被起义军杀了。元深听到元融被杀,退到定州,也被葛荣的骑兵俘虏了。葛荣把各路起义兵士都合在一起,号称百万,准备向洛阳进军,声势浩大。这时候,北魏孝明帝就利用尔朱荣的兵力来对付葛荣。
葛荣认为尔朱荣人马少,容易对付。他把兵士在几十里的阵地上散开,准备围捕尔朱荣。想不到尔朱荣把兵埋伏在山谷里,发动精兵突击,把葛荣的兵士冲散,再前后夹击。起义军遭到失败,葛荣本人也被杀害了。葛荣起义失败后,北魏内部也发生大乱。