司马伦也是个很有野心的家伙,本来他依附贾南风,时机一到,立刻除掉贾南风。贾南风死后,司马伦废黜晋惠帝司马衷,自己登基称帝。司马伦心肠黑这是没有疑问的,但是脸皮还不够厚,城府还不够深,自己称帝无异于惹火烧身。齐王司马冏联合成都王司马颖、河间王司马颙起兵攻打司马伦,司马伦派出军队前去迎敌。其后司马伦的亲信将领王舆临阵倒戈,迎晋惠帝司马衷复位,司马伦则落得和贾南风一个下场,被送到金墉城之后灌金屑酒而死。
亲王之间的夺权斗争除了在宫廷产生政治影响外,还是波及到了民间,加之当时的自然灾祸频繁,老百姓苦不堪言。随着社会矛盾的激烈,各地流民起义也层出不穷,虽然并未直接影响西晋的政权,但是加速了西晋灭亡的脚步。
公元301年,赵王司马伦被处死之后,齐王司马冏因功得以辅政。司马冏是司马攸的儿子,威望颇高,并且有政治头脑。司马冏辅政之后,逐渐开始沉迷酒色,大造宫殿,最让同族不满的是他竟然在皇太孙病死之后,立河间王司马遐的儿子司马罩为太子,这让原本有希望继承皇位的司马颖和司马韬不满,河间王司马颙也对司马冏的做法颇有微词。公元302年12月,河间王司马颙派兵讨伐司马冏,而身在洛阳的司马韬抢先一步讨伐司马冏,司马冏兵败之后,连同党羽两三千人一起被杀。
司马冏死后,司马韬便开始摄政。当然,司马颖不会那么天真,真的将朝政大权都给司马韬,他以大将军的名义在自己的封地远程遥控。
这种合作关系,双方难免会发生摩擦,久而久之就形成了不可调和的矛盾。司马韬想要将惠帝废黜,立司马颖为帝,自己做宰相;司马颖也不是一个好惹的主,认为司马韬独断专横。两人矛盾最终激化,双方撕破脸皮,大打出手。
司马颖和司马颙联军接近三十万,进攻洛阳。而司马韬在洛阳的守军却只有数万人,双方兵力如此悬殊,司马韬又不是什么军事奇才,胜负没有太大悬念。洛阳城被围之后,东海王司马越暗中联合将领,动用皇城禁卫军收捕了司马韬,交给了司马颙的部将张方,张方请示之后将司马韬活活烧死。至此,成都王进入洛阳,担任了宰相,司马越则凭借他临阵的机变,一跃成为了尚书令。
司马颖掌权之后,出于多方面考虑,又回到了自己的根据地邺城。在这段时间里,邺城实际上成为了西晋王朝的统治中心。司马颖是一个外强中干的人,他掌权之后骄奢无道,政务废弛,很快就失去人心。
东海王司马越趁此间隙统帅洛阳禁军,于公元304年7月,挟持晋惠帝发兵讨伐司马颖。怎料讨伐军根本不是司马颖的对手,兵败之后晋惠帝落入司马颖之手,司马越只能夹着尾巴逃回自己的封国。
司马颖胜利之后,并没能笑到最后。与司马颖有过节的幽州刺史王浚迅速联合鲜卑、乌桓以及东瀛的军队,一同向司马颖发难。攻破邺城之后,司马颖只能带着数十骑挟持晋惠帝逃到了洛阳,但是洛阳早已被张方控制,司马颖再也没有往日的权势,无法再干涉朝政。
王浚的行为完全是引狼入室,鲜卑、乌桓趁此机会大肆侵入中原,先前司马颖为了壮大自己的实力,也引匈奴刘渊作为外援,乘此机会,匈奴贵族假借赴国难之名,长驱直入。由于八王之乱造成的动荡,游牧民族公然入侵西晋,其中势力最强的便是匈奴族的刘渊。
公元304年,刘渊在离石(山西)起兵反晋,号大单于。两个月后迁至左国城(山西离石),即汉王位,建国号“汉”,正式和西晋朝廷对着干。
刘渊起兵之后,司马颙感觉洛阳不再安全,便迁都长安。废黜了司马颖的皇太弟之位,立司马炽为皇太弟。兵败之后的司马越一直在自己的封地蛰伏,经过几个月准备,他被推举为盟主,迎惠帝回洛阳,发兵讨伐司马颙。司马越先是打败了不服自己的豫州刺史刘乔,随即攻入长安,司马颙、司马颖如丧家之犬般四处逃窜,最后被司马越部将杀死。
晋惠帝受尽磨难,最后回到了洛阳之后竟然吃饼中毒而死,悲哀至极。惠帝死后,皇太弟司马炽继位,为晋怀帝。
西晋经过八王之乱之后,国力衰败至极,相反,汉王刘渊的实力却得到空前膨胀。屡次发兵夺取西晋领土,撼动了西晋王朝的国本。刘渊病死之后,其子刘聪通过兵变当上皇帝,继续讨伐西晋。公元316年,刘聪的弟弟刘曜攻入长安,俘获晋愍帝。至此,从晋武帝于公元265年建国算起,时长52年的西晋王朝至此覆灭。