贾南风一死,赵王司马伦就掌握了政权,但此人本是庸愚无识之徒,发动政变,诛杀贾后都是听了身边小吏孙秀的主意。现在后位空虚,皇帝虽傻,到底还是大晋的天子,赵王司马伦还要拿他做幌子号令天下呢,所以又张罗着再给他找个皇后。而小吏孙秀一朝飞黄腾达,也就攀附高门,认了平南将军孙旂为同宗。这时,他推荐孙旂的外孙女羊献容做皇后。
羊献容出身高门,是西晋功臣羊诂的侄孙女,那时还是十几岁的花季少女,却要嫁给这个四十多岁的白痴皇帝,也够倒霉的。更倒霉的是由于晋惠帝作为幌子在诸侯王之间传来传去,她这个皇后居然被废被立达五次之多。后来晋惠帝死了,她又做了后赵皇帝刘曜的皇后。这般惊险的经历,也算是乱世中的一段传奇吧。
赵王司马伦的野心很大。永宁元年(301年)春正月,他派惠帝的堂叔义阳王司马威去惠帝那里逼迫傻皇帝“禅位”。只是皇帝虽傻,倒也知道玺绶的重要,紧紧地抱在身上,死也不放。司马威欺负皇帝傻,也懒得和他多说,伸手就夺,几乎把惠帝手指掰断,弄得皇帝嗷嗷大哭。接着,司马伦把大哭的傻皇帝尊为“太上皇”,送到金墉城关起来。只是司马伦还是惠帝的叔祖,现在竟让侄孙做自己的太上皇,辈分也错乱大了。司马伦一当上皇帝,就把他的同党,不论文官武将,甚至是侍从、兵士,都封了大大小小的官职。那时候,当官的戴的官帽上面都用貂的尾巴做装饰。他封的官实在太多太滥了,官库里收藏的貂尾不够用,只好找些狗尾巴暂时来凑数。民间就编了歌谣来讽刺他们,叫做“貂不足,狗尾续”。这就是成语“狗尾续貂”的来历。
各地的诸侯王听说赵王伦做了皇帝,自然心中不服,便打起解救皇上的大旗,纷纷出兵。两个月后,手握重兵的齐王司马冏、成都王司马颖、河间王司马颙以及长沙王司马乂等共同起兵讨伐司马伦。司马伦慌了,就和亲信孙秀一起,天天弄几大帮人在宫里跳大神,想以此退兵。可惜大神也救不了他们,不久,四王攻入洛阳,杀了赵王司马伦和孙秀,又把傻皇帝请了回来。但他们都有拥立之功,谁也不服谁,都想发号施令当老大,又都握有重兵,于是刚安定没几天,这几个就开始混战起来,惠帝这个幌子又成了争夺的对象。混战中的诸侯王都想把他抢到手,可以明正言顺地发诏书、下诏令收拾政敌,成为事实上的老大。于是可怜的傻皇帝常常是半夜睡得正香,突然被兵士闯入寝宫,掀开龙被,套上龙袍,或强行架到殿上签字,或强迫塞上龙车赶路。在混战中,齐王司马冏、长沙王司马乂先后丧命,成都王司马颖暂时领先,抢到了皇帝,就让惠帝签个字,封自已为“皇太弟”,打算抢班夺权。但此时又冒出个东海王司马越对此不满,找个机会将惠帝抢入自己军中,打出奉帝北征的大旗,讨伐成都王司马颖、河间王司马颙。双方军队几番拉锯大战,杀得是血流成河,尸横遍野。惠帝在乱军中数度遭遇险境,最险的一次,惠帝脸上中刀,身上中箭,几乎身死。最终,光熙元年(306年),东海王司马越消灭了起兵诸王,独揽大权,惠帝才结束了动荡流亡的生活,回到了洛阳。
参加这场混战是赵王司马伦、齐王司马冏、成都王司马颖、河间王司马颙、长沙王司马乂、东海王司马越。加上已经被杀的汝南王司马亮、楚王司马玮,一共有八个诸侯王,史称“八王之乱”。这场祸乱长达十六年之久,令晋室元气大伤,更使生灵涂炭。都城洛阳及关中是主战场,受害尤烈。而且忙于内战,边备废弛,诸王混战中又引胡人参战,杂居北方的胡人乘时而起,最终种下了西晋覆亡的种子。
傻乎乎的晋惠帝屡经战乱,虽然没能变得聪明,一直都搞不清自己被这么转来转去到底是因为什么,但也慢慢地有了点阅历。赵王司马伦作乱篡位把惠帝关到了金墉城,他经过一番折腾,就对那个掰他手指的义阳王司马威念念不忘。等到司马伦倒台,义阳王司马威也被抓了起来。诸王商议想饶他不死,一直呆呆坐在上座的惠帝忽然发话:“阿皮(司马威小名)掰我手指,夺我玺绶,不可不杀。” 于是这个阿皮只得万分不情愿地上了刑场,恐怕这也是惠帝一生中所下的唯一一次体现自已意志的诏令。后来在成都王司马颖与东海王司马越两方军队的混战中,惠帝处境极其危险,脸上给砍了一刀,身中了三箭,周围的侍从都跑光了,只有侍中嵇绍用自己的身躯挡住皇帝。乱兵到了,惠帝大喊:“这是忠臣,你们不要害他。”那些乱兵却说:“我们奉皇太弟(成都王司马颖)的命令,只不伤害陛下一人。”结果嵇绍死在乱刀之下,他的血溅到了皇帝衣服上。后来皇帝给挪到了安全的地方,侍从们要把血迹洗掉。惠帝却说:“这是嵇侍中的血啊,为何要洗呢。”这话说得实在是入情入理,便成了这个傻皇帝的又一句名言。后来文天祥在《正气歌》里还特地提出“为嵇侍中血”。史家记录至此,也不由得惊叹一句:孰言惠帝憨愚哉。这个嵇绍也很有名,他就是竹林七贤之一嵇康的儿子。嵇康死于司马昭之手,他的儿子却成了晋朝的忠臣,世事变幻如此,也真可使人感叹了。
晋惠帝回到了洛阳,又成了东海王司马越的傀儡。可这位王爷慢慢觉得这个傻皇帝越来越不顺眼,就在光熙元年(306年)十二月,下手毒死了他。因司马越是晋室疏宗,没敢自已当皇帝,便拥立武帝二十子司马炽为帝,是为晋怀帝。永嘉五年(311年),晋怀帝为匈奴汉国所俘,西晋名存实亡,建兴四年(316年),匈奴兵又攻入长安,俘获了晋愍帝,西晋正式灭亡,仅仅立国51年。