北魏末年,因孝文帝将国都由平城(今大同)南迁洛阳,拱卫平城的六镇(沃野镇,怀朔镇,武川镇,抚冥镇,柔玄镇,怀荒镇)重要性下降,六镇将士由京师卫戍军变成了边防军。如此落差,搁谁身上谁难受。重要性降低了,待遇也随之下滑。因北魏的兵役制度主要是世兵制,所以镇戍兵不仅自己,连后代子孙都要世世代代戍守在这荒蛮之地。胡太后掌权后,朝中的大臣们忙着争权夺利,没人顾及远在北方的六镇。六镇子弟彻底沦为了弃儿,被南迁洛阳的鲜卑人蔑称为“北人”。除了囚犯刑徒,再没有人到六镇戍边。镇民待遇每况愈下。
正光四年(523),沃野镇民破六韩拔陵不满聚众杀镇将,攻占沃野镇。赫连思、胡琛等六镇军民响应,形成大规模起义,六镇尽为义军占领。孝昌元年(525)春,北魏勾结柔然首领阿那瓌,夹击六镇,义军接战不利。二十余万军民渡黄河南移,又遭广阳王元深大军阻击,受到重创,破六韩拔陵被柔然所杀。
起义被镇压后,北魏朝廷分徙镇民降户于冀、定、瀛三州就食。镇民到河北后赶上水患,无处就食。朝廷又未能及时安置,镇民纷纷逃亡,局势再度失控。孝昌元年(525年)八月,柔玄镇兵杜洛周(一作吐斤洛周)聚北镇流民反于上谷。次年,怀朔镇兵鲜于修礼等率六镇流民反于定州左人城。鲜于修礼死后,葛荣接收起义军,击败魏左军都督元融,俘杀元深,义众大振,葛荣遂自称天子,建国号齐。武泰元年(528)二月,葛荣杀杜洛周并其部众,据有燕、幽、冀、定、瀛、殷、沧七州之地,南围邺城,西逼并、肆,兵力极盛。
六镇起义战火不绝,使得北魏将领久握军权,势力逐渐壮大,其中尤以尔朱荣的实力最强。尔朱氏为五胡之一羯胡(又称契胡)一部,因先祖居于尔朱川,故以尔朱为氏。北魏初年,尔朱荣高祖尔朱羽健率三千部众随道武帝拓跋珪征北燕。此后尔朱氏世代为魏将,封梁郡公。六镇起义爆发后,素有野心的尔朱荣感到机会到来,打着平叛的旗号大肆扩充人马。在平叛过程中,尔朱荣又不断招降六镇兵将,日后叱咤风云的高欢、宇文泰、候景、贺拔胜等人皆被尔朱荣招至麾下。势力膨胀后,尔朱荣再也按捺不住,这时胡太后与孝明帝争权正好给尔朱荣送来一个插手朝政的借口。
武泰元年(528年),孝明帝已经十九岁了,胡太后依旧把持朝政,在朝中到处安插男宠亲信。孝明帝不甘做傀儡,开始提拔自己人,但无一例外的都被胡太后除掉。无奈的孝明帝想起了握有重兵的尔朱荣,就密诏尔朱荣进兵洛阳。尔朱荣得到密诏后大喜过望,立即发兵。胡太后得知后,先发制人,毒死了亲生儿子孝明帝。然后诈称孝明帝妃子潘充华所生之女元氏(史称元姑娘)是男孩,立她为皇帝。过了几天,局势安定下来,胡太后又改口说元姑娘本是女儿,现在应另选择接位的君主。于是立临洮王元宝晖的儿子元钊为帝,元钊时年三岁,史称北魏幼主。
尔朱荣得知孝明帝被杀,哪肯罢休,另立元子攸为帝,是为孝庄帝,继续朝洛阳进发。尔朱荣杀进洛阳后,胡太后还想辩解活命,被尔朱荣扔进黄河喂鱼,元钊也一同遭殃。尔朱荣认为自己在洛阳没什么根基,要站住脚就要杀人立威,遂在河阴将百官全部诛杀,史称“河阴之变”。
尔朱荣入主洛阳时,河北葛荣正围攻邺城,号称有百万之众。在关陇地区,羌人莫折大提领导的关陇起义与六镇起义同时爆发。莫折大提与其子莫折念生相继战死后,匈奴人万俟(mò qí)丑奴接手义军,并自称天子。在河阴之变后逃奔南梁的北海王元灏请求梁武帝帮助其称帝,梁武帝答应了他的请求,派陈庆之率七千兵马护送元灏北上洛阳即位。三路人马都不是善茬,尔朱荣首先把注意力转向了力量最大的葛荣。亲率精锐骑兵,以侯景为先锋,从近路加倍行军。葛荣恃众轻敌,兵力分散,被尔朱荣俘杀。
这边葛荣刚平定,最不起眼的陈庆之却创造了奇迹。陈庆之仅用七千人马一路上取三十二城,历四十七战,从无败绩,直捣洛阳。孝庄帝弃城逃往长子避难。尔朱荣听闻洛阳失陷,急忙回师救援,在黄河边与陈庆之大战十一场,皆不胜。尔朱荣打不过陈庆之,就从打元灏入手,元灏军一触即溃,陈庆之也只得撤退。撤退途中元灏被俘杀,陈庆之削发装扮成和尚,只身一人步行逃回南梁。永安三年(530年)春,尔朱尔荣派尔朱天光为统帅,贺拔岳、侯莫陈悦为左右大都督,领兵向关陇进攻。次年四月,关陇地区被平定,尔朱荣统一北方。
统一北方后,尔朱荣一如当年曹操对待汉献帝那样对待孝庄帝。尔朱荣的女儿本是孝庄帝的侧妃,但尔朱荣却强迫孝庄帝立她为后。尔朱皇后仗势欺人,时常在孝庄帝面前发脾气,孝庄帝只能忍气吞声。随着外部叛乱相继被平定,尔朱荣开始准备回京为篡位做准备。孝庄帝也知道该摊牌了,就与近臣谋划诛杀尔朱荣。尔朱荣的亲信听到风声,劝他先下手为强,但尔朱荣自信孝庄帝没胆量杀自己,大摇大摆的去了洛阳。尔朱荣入朝,当面问起外面传言,孝庄帝说:“外面的人都说您也要杀我,难道是真的?”尔朱荣无言以对。永安三年(530年)九月,孝庄帝在明光殿埋伏兵士,然后遣使飞报尔朱荣。声称尔朱皇后刚刚生下太子,尔朱荣毫不起疑,入宫道喜,被孝庄帝亲手所杀。
尔朱荣被杀后,洛阳城内的党羽准备攻打皇宫。大将贺拔胜心向朝廷,对众人说道:“天子既行大事,必当有备。吾辈众少,何可轻而!但得出城,更为他计。”制止了叛乱。尔朱荣的从弟尔朱世隆胆小如鼠,慌忙跑路了,剩下的党羽也都放弃了,孝庄帝逃过一劫。
尔朱世隆一口气跑到河阴后,想歇口气再跑回并州老家。手下司马子如劝他趁大局未定,洛阳兵少之机杀回去掌控局势。一旦给孝庄帝时间收拢人心,一切就都晚了。尔朱世隆一听有理,立马杀了个回马枪。孝庄帝不敌,亲自出面慰问劝降,但无济于事。通直散骑常侍李苗指出尔朱世隆兵少,只要把河桥烧毁,断其退路,军心必乱。并主动请缨,招募死士士趁夜色从马渚顺流而下,离河桥还有数里之时,把备用之船点燃,火势弥漫河面,将河桥引燃。契胡士兵见河桥突然冒起大火,怕后路被断,皆惶恐不安,急忙回撤救火。一时众人争抢上桥,此时河桥已遭受火焚,承受不住众人拥挤,瞬时断裂数段,契胡士兵溺死无数。尔朱世隆恼羞成怒,率兵急攻李苗,李苗所部悉数阵亡。之后,尔朱氏全面反扑,尔朱兆、尔朱仲远、尔朱天光分别自晋阳、徐州、关中杀向洛阳,并拥立太原太守元晔为帝。孝庄帝势单力孤,兵败被俘,后被尔朱兆所杀。
孝庄帝被杀后,被尔朱氏临时拥立皇室远支元晔失去了价值,被降封为东海王。广陵王元恭被拥立为帝,是为节闵帝。尔朱氏虽然杀了孝庄帝,为尔朱荣报了仇,但没有一个人能够接替尔朱荣执掌全局。最终结果是尔朱氏与北魏皇室鱼死网破,为高欢和宇文泰的崛起铺平了道路。