290年,晋武帝死。杨骏、杨皇后夺政权,大乱就从宫廷内开始。291年,贾皇后(晋惠帝后)杀杨骏,夺得政权。贾后使汝南王司马亮辅政,又使楚王司马玮杀司马亮,贾后又杀死司马玮。大乱从宫廷延伸到诸王宗室之间。300年,赵王司马伦杀贾后,301年,司马伦废晋惠帝,自称皇帝。齐王司马冏、成都王司马颖、河间王司马颙各起兵反对司马伦。赵王司马伦战败被杀,晋惠帝复位,齐王司马冏辅政。302年,河间王司马颙与长沙王司马乂攻杀齐王司马冏,夺得晋惠帝。303年,成都王司马颖与河间王司马颙起兵反对挟持惠帝的长沙王司马乂,进攻洛阳,司马乂守城大战,双方死伤数万人。304年,东海王司马越杀死长沙王司马乂。成都王司马颖据邺城,号称皇太弟、丞相;河间王司马颙据长安,号称太宰、大都督。东海王司马越等挟持晋惠帝,出兵攻击河北的成都王司马颖,结果司马颖击败了司马越,俘虏了晋惠帝。司马越逃回东海国,司马颖命大将张方占据洛阳城。幽州都督王浚与并州都督、东嬴公司马腾起兵反对司马颖。王浚勾结一部分鲜卑、乌桓人充作骑兵,司马颖也求匈奴左贤王刘渊助战。刘渊发匈奴五部兵,据离石自立,号大单于。诸王间的大混战从此扩大成诸族之间的大混战。成都王司马颖战败,挟持晋惠帝逃到洛阳却被投靠河间王司马颙的张方俘获,送往长安。从此,河间王司马颙挟持晋惠帝,控制了朝政。305年,司马颙又派成都王司马颖督诸军助战。东海王司马越再起兵反司马颙,司马颙战败。306年,司马越击杀司马颖,毒死晋惠帝,立晋怀帝,后又杀死司马颙,自以为获得了最后的胜利。309年,司马越杀死晋怀帝的近臣,让自己的亲信守洛阳监视晋怀帝。司马越则挟持王公和朝臣们离开洛阳,说是要攻击刘渊的部将石勒。311年,司马越死。石勒消灭了司马越全军,攻陷洛阳。“八王之乱”是一幅群兽狂斗图,司马氏集团全部的残忍性、腐朽性集中表现在这个狂斗中,由此引起了长达三百年的分裂、战乱,整个黄河流域变成了人间地狱。