司马伦大权在握,开始排除异己,朝中老臣张华等皆被杀害,一时间竟无一人敢反对司马伦。而司马伦的野心也越来越大,竟生出了篡逆之心。淮南王司马允知道司马伦妄图废立皇帝之后,便暗养死士,伺机准备除掉司马伦和孙秀等人,然而事情败露,司马允被迫提前起事,结果被司马允阵前被杀,随从四散而逃,其党羽也多被诛杀。司马伦与孙秀借机大肆株连,数千人因此被杀,这就包括历史著名的美男子潘岳和留下斗富恶名的石崇。
此时的司马伦权势达到了顶峰,不久之后他伪造诏书自封相国,手下党羽也皆被封赏,朝廷成了他的一言堂。公元301年一月,赵王司马伦正式废惠帝,自立为帝,并将晋惠帝软禁在了金墉城。
司马伦的废立行径,引起了其他诸王的不满。在许昌的齐王司马冏,联合河间王司马颙(司马懿三弟安司马孚之孙)、成都王司马颖(司马炎第十六子)、常山王司马乂(司马炎第六子)传檄天下,起兵讨伐司马伦,一时间天下云集响应,拥兵近20万。大战进行了两个多月,死伤多达十万余人,最终孙秀等人战死,司马伦兵败被俘,后被赐酒毒死于金墉城。
司马伦已死,晋惠帝复位,四王以复位之功入主朝廷,执掌大权,朝堂暂时平静下来。然而,还没过多久,四王之间也起了龌龊。司马冏担任大司马一职,主掌朝权。司马颙、司马颖则掌握重兵。司马颖接受谋臣卢志的策略,主动离开洛阳,返回封地邺城,在邺城拥兵自重,四处收买人心。一时间,司马颖的威望大增,颇得民心。同时由于太子以及太子的儿子都死于谋杀,按照继承人顺序,司马颖成为离皇位继承人最近的那个人。
而同样拥有野心的司马冏当然对此颇为不满,于是他拥立了晋惠帝年仅八岁的侄子司马覃为太子,并自任太子太傅。同时,为了对抗司马颖等亲王,又加封自己一派的东海王司马越(司马懿四弟司马馗之孙)为司空。
一年后,也就是公元302年,河间王司马颙接受长史李含建议,率先发难。司马颙派李含、张方吞并洛阳城外,同时传檄诸王,命长沙王司马乂征讨司马冏。双方攻伐数日,最后司马冏大败,司马冏被杀,随之齐王司马冏一派被灭,长沙王司马乂掌控朝权,河间王回兵长安。
司马颙对于司马乂独揽大权心怀不满,多次派人暗杀。公元303年八月,司马乂诛杀了司马颙的亲信李含,司马颙以此为借口,联合成都王司马颖起兵征讨。司马颙派张方带兵7万多、司马颖带兵20余万,黑压压的大兵奔向洛阳。司马乂挟天子之势,大败司马颙、司马颖联军,斩杀六万余人。
按照这么下去,最后取得胜利的还是长沙王司马乂。但关键时刻,本来与司马乂一伙的东海王司马越突然反水,率兵将司马乂拘禁于金墉城,并开城迎接司马颙、司马颖联军进城。不久,司马乂被张方放在火堆上活活烤死,司马乂一派被灭。
征讨成功之后,朝权被三王控制。司马颖还师邺城,并自任任丞相,在邺城遥控掌握朝中大权。不久又废掉太子司马覃。司马颙则乘机献媚,上书要求封司马颖为皇太弟。司马颖以晋惠帝名义下诏同意。
不久,司马颙正被雍州刺史攻击,被迫召张方回师长安,协助自己对战雍州刺史。张方素来为人残暴,长沙王司马乂就是被他活活用火烤死的。张方临走之前,劫掠洛阳百姓数万人,在回军途中,因部队缺粮,残暴的张方竟然下令将百姓杀害,混在牛肉中充当军粮。两晋时期,这类残暴事情多次发生,而张方恐怕是就是“两脚羊”的源头始作俑者了。
东海王司马越一直在洛阳任职,但是朝廷决策权却归在邺城的司马颖,对此,他甚是不满。公元304年秋天,司马越挟持晋惠帝,率兵10多万进攻邺城讨伐司马颖。混战中,司马颖大败司马越,并且俘虏了晋惠帝。而在司马越进攻司马颖的同时,司马颙派张方偷袭了洛阳。司马越只能逃回自己的封地东海。
司马越败后,幽州都督王浚与司马越的亲弟东瀛公司马腾联合鲜卑、乌桓骑兵偷袭邺城,很快就攻破了邺城,并在城中大肆劫掠,大量妇女被裹挟到了军中,王浚担心进军速度,下令军中不得私藏妇女,诸族骑兵就将被劫掠的妇女推到了河中,八千余人丧命水中。司马颖大败之后,只带了数十人挟持着晋惠帝逃往洛阳。
到达洛阳后,司马颖作为败军之将,前权尽丧,张方则掌控了朝政。不久,张方挟持着晋惠帝、成都王司马颖、豫章王司马炽等回到了长安,在临行之前,纵兵大肆劫掠,将洛阳洗劫一空。
到达了长安,司马颙就自然成了朝政的掌控人。不久,他废除了司马颖的皇太弟身份,并将其软禁,随后立豫章王司马炽为皇太弟,自己则设置百官,独揽朝权。
公元305年,司马颙又以晋惠帝名义,罢免东海王司马越的太傅身份。司马越经过一阵的蛰伏之后,东山再起。于是当年七月,他以张方挟持惠帝为罪名发兵征讨司马颙。司马越一路高歌猛进,而司马颖的旧部也趁机造反。司马颙大为惊恐,一方面释放了司马颖,并让他前去招抚旧部,另一方面派人杀了张方以向司马越求和。然而司马越要的哪里是张方的人头,他要的是权力,要的是皇位。
公元306年5月,司马越的前锋祁弘攻入长安,晋惠帝再次沦为俘虏。祁弘纵兵屠杀,2万多百姓被杀害。司马颙逃到了山中,以野果为食。祁弘挟持晋惠帝还都洛阳,司马颙趁机夺回了长安。
东海王携大军进驻成都,成为朝廷新的代言人。他一方面下令继续攻打司马颙,一方面下令抓捕司马颖。不久司马颖被抓,被毒死在狱中。
公元307年1月,东海王司马越终于厌倦了痴呆皇帝司马衷,派人毒死了他,立豫章王司马炽为帝,是为晋怀帝。司马越又假借新皇帝司马炽的名义,下诏封司马颙为司徒,并入朝辅政。司马颙竟然不疑有他,领着三个儿子就前往洛阳。在路过新安时,被司马越派人杀害。
自此,八王之乱算是落下了帷幕,在这场前后十六年的混战中,死了一个皇帝、两个皇后、十多位亲王、两家外戚,而在战乱被杀害的百姓更是不计其数,西晋也就此走向了灭亡。
值得一说的是,作为最后胜利者的司马越却也没落得什么好下场。司马越立了晋怀帝之后,杀害了曾经被立为太子的清河王司马覃,大肆杀害朝中大臣和政敌,一时间烽火四起,司马越不得不带兵四处灭火。
公元311年,晋怀帝传檄天下,发布司马越的罪状,任命苟晞为大将军,要求天下勤王,讨伐司马越。在征讨石勒途中的司马越得到消息后,急火攻心,暴死于项城。襄阳王司马范(帝司马炎之孙)和太尉王衍计划秘不发丧,悄悄回军东海。石勒得到消息后,率兵追赶,司马越大军队群龙无首,被石勒大肆屠杀,十余万人被杀,剩余被俘的近二十万人则被刘渊手下的王璋大火烧死,并充作军粮。司马越的棺椁也被焚烧。留守洛阳的何伦等得到消息后,带着司马越的家眷、军队和城中百姓一起逃亡。结果路上又为石勒所败,宗族中四十八个亲王都被杀死。司马越的王妃则被乱兵掳去,被侮辱后贩卖为奴。至此,八王之乱算是彻底画上了句号。
最后再提一句关于西晋的最后结局。公元311年七月,洛阳失守,晋怀帝被俘,公元313年晋怀帝在平阳遇害;公元316年长安失守,晋愍帝司马邺投降,西晋灭亡,公元318年2月被司马邺杀害于平阳。