公元303年,河间王司马颙联络成都王司马颖起兵反司马乂,进攻洛阳城。司马乂守城抵抗。司马颙部将张方曾袭破洛阳城,后被司马乂打退。司马乂又在建春门和司马颖部将陆机激战,大败陆机军。司马颙的宠奴孟玫与陆机有宿怨,向司马颖进馋言,结果,陆机、陆云兄弟被砍首,并被灭全族。陆机、陆云都是晋代著名的文学家,卷入八王之乱并被砍首灭族。司马乂屡破敌军,前后斩获七万多人。这场仗,双方相持了一年之久。
公元304年,张方认为洛阳城难以攻克,想领兵回长安。不料,城中的东海王司马越,怕洛阳久围必破,暗中勾结殿中将士,将司马乂擒拿,禁锢金墉城,然后开城与司马颖、司马颙两军议和。城中将士见外面军队并不强盛,十分后悔,又密谋劫出司马乂再作抵抗。司马越得知这消息,十分恐慌,使人密告张方;张方立即派兵到金墉城,将司马乂烧死。
司马颖入京师,当了丞相,司马颙为太宰,司马越为尚书令。司马颖废羊皇后为庶人,又废皇太子司马覃为清河王,自号为皇太弟。他拒守邺城,骄恣日甚,大失众望。司马越借众怒为名,乘机讨伐司马颖。他迎立羊皇后和皇太子,发大军奉晋惠帝出征。侍中嵇绍伴惠帝同行。司马颖派石超在荡阴迎战。石超大败司马越,司马越逃回东海国。晋惠帝被俘,嵇绍为保护晋惠帝而身死,鲜血溅满了帝衣。晋惠帝被迎入邺城后,大臣们请洗去帝衣上的血,晋惠帝说:“这是嵇侍中血,不要洗去!”在司马颖和司马越交战的时候,司马颙乘机令张方入据洛阳城。
司马越毒死了晋惠帝,又杀死了司马颖、司马颙,掌握了朝中大权,自以为获得了最后胜利。这场由司马亮、司马玮、司马伦、司马颖、司马颙、司马乂、司马腾、司马越等八王制造的西晋“八王之乱”,从公元291年起,到公元306年止,前后经历了十六年之久。这场由宫廷政变演变为皇族争夺中央政权的战争,以洛阳为中心,逐渐扩大到荥阳和长安等地区,它给劳动人民带来了无穷的的灾难,数十万人民丧失了生命,许多城市被摧毁,洛阳十三岁以上的男子全部被胁迫服役,米价贵到万钱一石,饿死的人不计其数。八王之乱的后期,鲜卑、乌桓、匈奴等贵族也加入了战争,使得诸王间的大混战发展扩大成各民族间的大混战。西晋政权也在这场大混战中逐渐走向灭亡,并由此引起中国三百年的战乱和分裂。
秦汉以来,在西方和北方的少数民族不断有相当数量的人口内迁。他们一方面受郡县管辖,一方面仍保存着他们的部落组织。由于官府的压榨,民族矛盾和阶级矛盾都有所激化。内迁民族忍无可忍,最后只有走上反抗晋朝统治的道路。