北魏孝文帝元宏执政30年,治国有方,国富民强。宣武帝元恪继位后,则每况愈下,到孝明帝元诩6岁登基后,朝廷争权,官吏腐败,民不聊生。许多农民、僧人起义造反,爆发了著名的六镇起义。由于朝廷和柔然相互勾结,525年,柔然兵攻破武川、沃野,破六韩拔陵被迫南移,在渡黄河时遭北魏伏击,才把这次规模较大的起义镇压下去。
匈奴人破六韩拔陵领导的六镇农民起义失败后,将近20万六镇兵民被魏朝廷迁移到上谷(今河北省怀来县)城等地。这里是一座荒凉颓废的古城,人烟稀少,贫穷落后。
朝廷把这些人押送到这里,再就不管了,人们只好吃野菜、树皮,或乞讨为生。有的只好去偷盗、抢劫,被抓住的或关押或处死。小小的上谷城,住了4千或5千户六镇兵民,仅两个月,病死饿死和处死的约千余人。
这些人中有一位中年人叫杜洛周,在被迁徙的途中,他70多岁的父亲被活活饿死,他妻子被官兵轮奸后,投井自杀,一气之下,他将不足一岁的儿子送人,决心与官府拼个你死我活。
百姓们见杜洛周气度不凡,便让他为头,领着大家起事,总比等着饿死强。杜洛周曾参加过破六韩拔陵领导的起义,有一定的经验,他了解到一个情况,5天后是城隍庙会,官府要在庙会上问斩刃名六镇兵民。杜洛周想出了主意:当时大早,可将庙会改为求雨大会,这样附近各镇农民都可以来参加求雨活动,不会引起怀疑。杜洛周又具体做了布置,然后让大家分头串联愿意起义的人参加劫法场行动。
5天后的上午,各地百姓打鼓敲锣来到上谷,中午时分汇集了一万来人。一位提督骑着马,带领一队士兵,押着50名死囚来到刑场。死囚们一字排开跪倒在地。午时三刻,三声炮响,骑马的监斩官刚要举蓝旗,杜洛周把手中祭神的酒杯往石阶上一摔,大声呼喊:“弟兄们!我们造反了!”话音未落,跪地求雨的百姓齐刷刷蹦起来,取出钢刀斧剑,冲向法场,眨眼之间,官兵们变成了肉泥,死囚们被解开绳子,马上参加义军之中。
杜洛周率领众人冲进府衙,杀了县官,打开牢门,救出几百名被关押的六镇兵马,一举攻占上谷城。当天夜里,杜洛周被义民拥为真王。时值公元525年8月,距破六韩拔陵起义失败只两个月。
消息传出,各地农民纷纷响应,到处都有起义军。鲜于修礼在左人城(今河北省唐县西)率领10万六镇兵民起义,是人数最多的一支队伍。鲜于修礼系于零族人,原为六镇中怀朔镇的镇兵,他被朝廷迁至定州附近,生活没有着落,杜洛周起义后,他也打造兵器准备起义,但走漏了风声被官府捉拿关进牢狱。在除夕之夜,鲜于修礼率众囚徒暴动,宣布起义,得到六镇兵民响应。
在鲜于修礼义军当中,有两位别帅,一个叫元洪业,一个叫葛荣。元洪业一天找到葛荣,提出杀掉鲜于修礼,投靠朝廷,他认为起义的下场很可能像破六韩拔陵一样失败被杀。葛荣同意了,两人杀死了鲜于修礼,并写信报知官府,朝廷派元渊去接上。第二天,元洪业、葛荣召集义军开会,元洪业公布了杀死鲜于修礼、投奔朝廷的决定,义军一片反对声,坚决不同意投降。葛荣见状,一剑将元洪业头颅砍下,说:谁敢不顺民心天意,这就是下场广义军愣怔片刻,立即欢呼雀跃,拥立葛荣为王。这时,葛荣一下子成为拥有30万人的德王。
为了提高威望,葛荣准备打个胜仗,便用了一个声乐击西之计,于526年9月在白牛罗(河北境内)歼灭魏军1万人马,杀死章武王元融。葛荣声望大增,其亲信独孤信建议他称帝,葛荣半推半就做了皇帝。
公元526年十一月,杜洛周率领的起义军攻下重镇幽州,也拥有30万兵马,但这时葛荣兵马已达百万之众。杜洛周虽然兵马没有葛荣多,但接连打了几次漂亮的胜仗,威望不亚于葛荣。所以,葛荣想把他拉过来,吞并掉。葛荣亲自来到杜洛周军中,一派皇帝派头,杜洛周心中很不高兴。而葛荣见杜洛周没下马跪迎,也不痛快。杜洛周为葛荣设宴接见,葛荣让杜洛周尝尝他带来的酒,杜洛周与众将官喝了之后,便都迷迷糊糊睡着了。葛荣见状,抽出宝剑把杜洛周杀死,吞并了他的30万人马。
葛荣以为现在有130万人马,该所向无敌了,528年8月,葛荣指挥起义军包围相州,前锋已过汲都,准备向洛阳进军。这时,秀容(今山西)有个部落酋长尔朱荣,手下有8千强悍的骑兵,专门和农民军作对。北魏孝明帝就利用尔朱荣的兵力来对付葛荣。
葛荣认为尔朱荣人马少,容易对付。他把兵士在几十里的阵地上散开,准备围捕尔朱荣。想不到尔朱荣把兵埋伏在山谷里,发动精兵突击,把葛荣的兵士冲散,再前后夹击。数10万兵众散尽,起义遭到失败,葛荣本人也被杀害了。
葛荣起义失败后,北魏内部也发生大乱。尔朱荣和胡太后、孝明帝在内乱中互相残杀。最后北魏实权落在两员大将高欢和宇文泰手里。
北魏末年各族人民大起义,时间延续8年,遍及北魏全境,在共同斗争中加强了联系和了解,为民族大融合创造了条件。