晋武帝建立后,汲取了曹魏因皇族太弱而失国的教训,大封宗室为王。然而,他万没料到,问题又走向了另一极端。握有重兵的同姓王野心越来越大,最终酿成了“八王之乱”。
公元290年惠帝即位后,太后的父亲杨骏独揽朝政大权,施展权术,排除异己。公元291年,皇后贾南风不甘心让杨骏独掌大权,就密召宗室诸王进京铲除杨骏。其实诸王早有野心,楚王司马玮一接到诏书,立即进京与贾后以惠帝名义下诏,以谋反罪,将杨骏灭族,并将其余党也都杀了。贾皇后除掉杨家势力后,又召汝南王司马亮入朝辅政。司马亮也想独揽大权,暗中谋划夺取楚王玮的兵权。贾皇后想除掉诸王,先让惠帝诏令司马玮杀了司马亮,又以擅杀朝廷重臣的罪名将司马玮处死。几经运筹,贾后终于夺得了西晋的全部大权。
贾后无子,就把妹夫韩寿的儿子抱来冒充自己的儿子。公元300年,贾后就决定废掉太子,并且派人把他毒死,立抱来的孩子做太子。宗室得知后群情激奋,联合起兵,以贾后篡夺司马氏天下为名,讨伐贾后。赵王司马伦领兵入宫,派齐王废掉贾皇后,并将其毒死,接着,废掉晋惠帝,自己称帝。
齐王进人落阳后,独揽大权,沉湎酒色,长沙王又乘机起兵发难,司马颖、司马顒相互声援,就这样又打了几年,司马冏兵败被杀。
长沙王又入朝辅政,控制了司马家,司马顒见此,心有不甘,恼羞成怒,立马就发兵讨伐长沙王,和司马颖联合起来大举进攻洛阳。正当他们打的天昏地暗时候,在洛阳城里的东海王司马越乘机偷袭了长沙王,并一把火将他烧死,紧接着司马颖进入了洛阳,做了丞相,控制了大权。
当然了,东海王此时不服了,认为他诛杀长沙王有功,却没捞到半点好处,着实不甘心,就假借着惠帝的名义,起兵讨伐了司马颖,司马颖挟持惠帝跑到了长安,此地是河间王司马顒的控制范围,他看到司马颖兵败如山倒,就排挤司马颖,趁势把惠帝控制在了自己手中,独占了朝政大权。
东海王司马越和王浚联合打败了司马顒,进入长安。306年,司马越又把惠帝和司马颖、司马全都带回到洛阳,全都处死,立司马炽做皇帝,即晋怀帝。次年(公元307年)改元永嘉。至此,围绕皇位争夺,长达16年之久的“八王之乱”总算结束。在这次血腥混战中,8个王死了7个,从此西晋王朝一蹶不振。