八王之乱
八王之乱是發生於西晋末年元康元年（291年）至光熙元年（306年）間的政治內鬥，是一场由西晋皇族為争夺中央政权而引发的內鬥，為中国历史上一場極为严重的皇族内乱，共持续16年。西晋皇族中参与这场动乱的王不止八个，但八王为主要参与者，且《晉書》将八王彙為一列传，故史称“八王之乱”。
这场动乱从宫廷内权力斗争开始，进而引发战争，祸及全社会，造成大量破坏，也加剧西晋的统治危机，成为西晋迅速灭亡的重要因素。八王之乱期間，北方主要少数民族匈奴、羯、鲜卑、羌及氐等五族的各个部族趁西晋政权内部空虚，纷纷起兵脫離晉朝控制，並陸續建立割据政权，入驻中原，最後導致建興四年（316年）西晉滅亡。之后晋室遗族避走中原、至江南地區建立王朝，設都建康，史称东晋。
北方的中原地区则由汉族以及非汉族的各游牧民族部族政权割据，前后建立十六个国家，其中以鲜卑族建立的一系列政权影响力最广。因为鲜卑属于上古华夏族同时期的北方游牧民族东胡族后裔，所以这五个少数民族被南方王朝统称作“五胡”，中国古代史进入五胡十六国时期。南北分裂的局面从東晉十六國一直持续到南北朝，直到589年隋滅陳之戰后，隋朝正式成為統一的王朝。
曹魏时代，皇室對宗室王公雖有授爵，但其實僅有虛名，沒有任何實權，行為也受嚴密管控。魏明帝死後，幼主曹芳即位，由宗室曹爽当政，其時宗室曹冏曾寫《》指出若不授以宗室诸王實權以保衞皇室，政权可能转入他姓之手，希望曹爽會進行改革，但曹爽沒有聽從。不久，司馬懿發動高平陵之變，族滅曹爽，奪取大權，自此將政權轉移到司馬一族手中，實力微弱的曹魏宗室無法抗衡，遂讓司馬氏成功篡位。因此，晉武帝在泰始元年（266年）晉朝初建時，就恢復周、漢二代的分封制，封二十七个同姓王，以郡建国。晋武帝制定的王國置軍制度，將封國分為大、次、小三等，不同级别可置不同数目的军，但各王无地方行政权。分类情况如下：
晋武帝在分封同姓王的同時，又大封異姓士族為公、侯、伯、子、男等爵位，他們也有封地。公侯邑亦分三等，如下面列表。 除了有自己的封國軍隊，諸王也可能獲授地方都督職位，掌握地方軍事權力，遂能於地區建立自己的影響力。而晉滅吳後，晉武帝更下令裁撤州郡兵力，大郡只設武官百人，小郡則設五十人，令州郡防禦薄弱。諸藩王隨後更可以自選封國內的官員，及以三分食一方式取得封國的租稅收益。而原本諸王除了別授職位皆會留在京師洛陽，不會回到封國，但晉武帝後來因為聽從荀勖等人所言，終在咸寧年間將諸王王國皆增至萬戶大國，命諸王公回到封國。荀勖等人原意其實只是希望時任司空的齊王司馬攸離開中央政府，以免武帝一旦離世會因其高名望影響太子司馬衷之位，但在武帝去世以後，太子無力掌控國家，皇后賈南風趁機掌握朝政，並有宗室諸王參與，最終發展成諸王為了爭權而運用自己封國軍隊及地方影響力互相攻伐，觸發八王之亂。
以下為主要參與的八位宗王（按败亡次序）： 八王之乱相關人物世系關係如下圖所示，其中藍色字體為为八王，綠色字體為为皇帝及太子，红色字體為参与乱事的其他王。太熙元年（290年），晋武帝（司馬炎）重病之时下了诏书，存放在中书省，诏书中依托叔父汝南王司马亮及皇后楊芷之父杨骏共同辅助太子司馬衷 (晋惠帝) 繼位。杨骏惧怕失势，曾经从中书省借出诏书，看后不归还。当时的中书监华廙恐惧，还亲自向杨骏索取诏书，但杨骏始终不还。晋武帝病情加重时，杨骏要求晋武帝让他单独辅政，晋武帝點頭默许。杨骏招来華廙及中书令何劭，口宣帝旨作遗诏，让杨骏单独辅政。诏成后华廙、何劭二人拿给晋武帝看，晋武帝视而无言，两日后就驾崩了。但其實惠帝愚鈍，根本無力掌控國家，朝政就旁落在楊駿、太后楊芷父女身上。
而原本會參與輔政的汝南王司馬亮在晉武帝去世後知楊駿要對付他，但他又不敢先發制人進攻楊駿，於是只好逃亡到许昌保住性命。不過，司马衷的皇-{后}-贾南风是开国元老贾充之女，她相貌不好，又矮又黑，但卻凶狠多诈，也企图操纵晋惠帝以把持朝政。杨骏辅政期間，在皇帝身邊安插自己親信，凡有诏令，晋惠帝过目后交予杨太-{后}-，才直接下发执行。楊駿亦知贾南风难以控制，为防贾南风碍其擅权，则任命其亲信掌管禁军，此举引起宗室和朝野的不滿。杨骏的兩位弟弟杨珧、杨济也对他的做法不以为然，屢次試圖劝止他，但杨骏不纳。贾南风雖受楊駿壓制，遂暗中與東宮舊臣黃門董猛聯絡，合謀要廢掉楊太后，董猛則與不滿楊駿的殿中中郎孟觀及李肇交結。賈-{后}-接著命李肇聯絡司馬亮及惠帝弟楚王司馬瑋，讓他們出兵討伐楊駿，二人都欣然同意，上請入朝。楊駿一直防範司馬瑋，向來都想召他入京嚴加看守，不讓他作亂，此舉正合楊駿意思，於是應允。永熙二年（291年），司馬瑋到後，孟觀和李肇就上報惠帝，接著寫下詔書稱楊駿反叛，要廢黜楊駿。駐屯雲龍門的東安公司馬繇也率殿中四百人隨司馬瑋討伐楊駿。
楊駿時在府中，聽聞宮中有變，於是召集一眾屬官討論。主簿朱振就看穿肯定是宦官為賈-{后}-謀劃政變，建議在雲龍門縱火示威，並追緝禍首，開萬春門取東宮及外營兵力，奉太子之名入宮反攻，如此震懾宮中人們，讓其速速交出主謀者，從而解決危機。可是楊駿為人怯懦，猶豫之下最終還是不作。就在楊駿仍不知如何反應時，侍中傅祗就自請與尚書武茂到雲龍門察看形勢，又向眾人說：「宮中不宜空」，接著就作揖離去，眾人亦隨之而走。稍後，宮中出來討伐楊駿的軍隊就來到楊駿府中，並放火燒府，更命弩兵在閣上射箭入楊駿府中，令府中士兵無法組織反攻；楊駿就逃到馬廄中，被殺。楊氏及其黨眾亦被夷滅三族，賈后也燒毀楊府以圖毀掉武帝讓楊駿顧命的手詔，外戚楊氏勢力遂被剷除。皇太后楊芷在變亂時在布帛中寫上「救太傅者有賞」並射出宮外，希望能救到楊駿，但這反而被賈-{后}-用作指控太后與楊駿同反的証據，最終太后被廢並囚禁在金鏞城。次年（292年），楊芷餓死在金鏞城。
楊氏勢力被消滅後，汝南王司马亮与元老大臣卫瓘分任太宰及太保，共同执掌朝政。同樣參與政變的楚王瑋則任衞將軍、領北軍中候，但他就因個性狠戾而為二人所忌，於是二人提議將諸王遣還封國，以圖除去楚王在宮禁的威脅，不過朝中人人都怕楚王，提議之時也只有汝南王亮及衞瓘二人敢表態支持，司馬瑋亦因此記恨二人。時司馬瑋親信公孫宏及岐盛行為不端，衞瓘討厭他們為人，更怕他們會是禍胎，於是想收捕岐盛。岐盛知道後與公孫宏商量，遂藉積弩將軍李肇假託楚王瑋的命令，向賈后中傷汝南王亮及衞瓘二人。因為衞瓘在武帝在位時就曾表示司馬衷並不聰明，危害其地位，故賈后向來都不喜歡他，現在亦阻礙她專擅朝權，於是就乘勢讓惠帝下詔指稱亮、瓘二人圖謀廢立，下令廢黜二人，並授命楚王瑋收捕。楚王瑋遂假傳詔命，敕令三十六軍控制宮禁，並分別派人收捕二人。司馬亮為公孫宏及李肇率兵所攻，但司馬亮拒絕以府兵迎擊而被擒，隨後被殺；衞瓘由清河王司馬遐奉命收捕，衞瓘也不反抗，與子孫皆為故吏榮晦所殺。
岐盛接著更勸楚王乘機殺害賈后堂兄侍中賈模及母舅右衛將軍郭彰，獨攬朝權，但楚王此時卻猶豫。另一方面，楚王掌握禁軍，發動政變的消息亦令朝廷混亂，張華卻認為禁軍們受楚王控制都是為國盡忠，只要朝廷下令解嚴，危機就會消除。最終賈后以朝廷名義出“騶虞幡”，宣稱楚王假傳詔命，禁軍見此都立即散去，而楚王突然失去軍力就失措不已，不久就被收捕下廷尉。楚王被指控假傳詔命擅殺兩名大臣，圖謀不軌，即被處決，公孫宏及岐盛皆被誅三族。自後，賈后盡掃其獨掌朝權的障礙，任命賈謐、郭彰等親黨，但重用張華，張華亦盡心匡輔，接著十年間，在張華、裴頠等人的努力下，雖然賈氏勢力有專擅之行，但朝野內外都大致平穩。
晋惠帝的太子司马遹乃謝才人謝玖所生，而賈后卻一直沒有生下皇子。而賈謐在賈后專權後權勢極盛，但太子就不肯去討好他，而其時賈后又拒絕為太子娶賈后妹夫韓壽的女兒以及王衍長女，太子更因賈后為賈謐娶王衍長女而大感不滿，而賈謐亦不退讓，甚至因對太子不禮敬而曾被成都王司馬穎當面斥責。賈謐於是就向賈后中傷太子，而賈后沒聽從母親郭槐臨終時所說的話，立姨甥韓慰祖當作皇子，藉以其嫡子身分廢掉太子，同時亦宣揚太子的缺失。當時人都知道賈后有意廢太子，中護軍趙俊更勸太子先發制人廢掉賈后，但太子沒有聽從。最終在元康九年（299年），賈后召太子入宮並將其灌醉，逼其寫下言辭悖逆的書信，以此為由將其廢黜，囚在金鏞城，並殺害謝玖。次年再將太子押到許昌囚禁。
眾人對太子被廢都感不滿，尤其殿中將司馬雅及許超都得太子寵信，更想救太子，遂向趙王司馬倫的親信孫秀求援。趙王倫時以車騎將軍領右軍將軍，得孫秀通報後亦同意幫忙，並作出部署。不過，孫秀卻另有計劃，怕向來被視為賈后一黨的司馬倫即使幫太子也勢不得其信任，未必有利，遂改向賈后施反間計，聲稱禁軍宿衞中有人謀廢賈后、復立太子，以圖借賈后之手殺害太子，接著趙王再以殺太子為理由討伐賈后。流言傳出後賈后果然害怕，趙王及孫秀又力勸賈謐建議賈后殺太子，最終成功令賈后中計，派黃門孫慮到許昌殺死太子。
趙王倫接著準備廢掉賈后，與閻和約定在永康元年四月三日（300年5月7日）夜晚一更起事。當晚，趙王對三部司馬假傳詔命，聲稱惠帝因太子被殺要命令他廢掉賈后，於是眾人都跟他起事。接著趙王又以假詔命過宮門，陳兵道南，命齊王司馬冏率三部司馬的一百人進宮廢后，內應華林令駱休就帶惠帝到東堂。賈后被廢後先被囚在建始殿，接著又被移送到金鏞城，不久就被毒殺。另趙王又收捕賈午等人，又令尚書收賈謐、張華、裴頠等人，時內外官員都多被貶黜。趙王倫不久就自任使持節、大都督、督中外諸軍事、相國，侍中，並大封親信。
不過，趙王倫才能低下，事事都聽從孫秀，故此眾人有所求都會直接去找孫秀，而孫秀大權在握，於是專擅濫權，肆意而為，多殺忠良，和他有私怨的石崇、潘岳也被他誅殺，京中人士都大感不滿。而中護軍淮南王司馬允亦不滿趙王倫等，於是暗中蓄養死士，想要消滅他；而趙王及孫秀皆畏懼得禁軍軍心的淮南王，於是故意晉升其為太尉，實質就是奪其中領軍兵權。淮南王於是憤而起兵，率淮南國兵及帳下七百人進攻相國府，屢敗趙王軍，並逼得趙王躲在樹後狼狽避箭。不過，趙王之子侍中、汝陰王司馬虔就派司馬督護伏胤假稱有詔助淮南王，騙得淮南王開陣下車受詔，乘機殺害他，淮南王的討伐因而失敗。另外參與廢賈后的齊王冏不滿封賞不足，孫秀怕他作亂，於是將其調到許昌。
事後趙王集團將心腹都安置在宮禁要職，孫秀更偽造符命，假作皇帝禪讓詔書，讓趙王於永康二年（301年）正月篡位稱帝，並送惠帝到金鏞城軟禁。趙王登位後為收買人心，濫授官爵，乃至府庫根本沒有足夠儲備供其封賞，一些人雖獲封爵但沒有璽綬，成為僅是有詔命的空銜。而朝政更全由孫秀所主，不但趙王每事都會問他，連帶已發出的詔命都可被孫秀隨意改易甚至由其自行作詔。
孫秀在趙王篡位後進齊王司馬冏為鎮東大將軍，以圖安撫他。其時齊王與成都王司馬穎及河間王司馬顒皆擁強兵，孫秀很忌憚他們，於是將親信和趙王舊部安插到三人的僚屬中。不過，孫秀等人的行為引起很多人不滿，齊王就與王盛及處穆共謀討伐趙王。其時趙王心腹張烏去監視過他，回覆趙王稱齊王沒有謀反意圖，齊王亦為安定其心，就聯同軍司管襲殺害處穆，將其首級獻給趙王以示忠誠。不過，就在永康二年（301年）三月，齊王謀定，殺死管襲，與豫州刺史何勖及龍驤將軍董艾共同舉兵，並派人聯結成都王司馬穎、河間王司馬顒、常山王司馬乂及新野公司馬歆四位宗室。成都王見過使者後召見鄴令盧志討論，盧志勸他支持討伐，並建議他選用賢才以收時望，成都王於是改易僚屬，又派冀州刺史李毅、兗州刺史王彥等人為前鋒。成都王出兵後得各方響應，大軍到達朝歌時就有二十多萬人。另一方面，河間王在初時還是站在趙王一方，他殺死起兵響應齊王的夏侯奭，並將齊王使者押送給趙王，更響應趙王徵兵，命部將張方率軍支援趙王。不過，在張方行軍至華陰時，河間王見齊王及成都王軍力強大，於是立即改變立場，命李含率兵追上張方，改為響應二王舉兵。常山王及新野公亦支持行動。
趙王及孫秀得知三王起事後十分恐懼，但孫秀還是派孫輔、張泓及司馬雅等人兵分三路，經延壽關、堮阪關及成皋關出襲齊軍，孫會、士猗及許超出黃橋抵抗成都王。張泓一開始就屢敗齊軍，更在陽翟擊敗齊軍輜重隊，但都沒法擊潰齊軍，齊王接著在潁水對張泓軍發動進攻，但不能攻破，只是孫輔軍夜間自亂，並提供錯誤情報給趙王，影響趙王調度，打擊趙軍士氣。及後張泓渡過潁水直攻齊軍軍營，齊王出兵大敗孫輔等別軍，逼得張泓收兵。另外許超等人初戰亦敗成都王前鋒，成都王一度想退還朝歌，但在盧志等人勸說下堅持，並再度進攻，士猗等因輕敵而大敗，成都王遂乘勝南渡黃河，直取洛陽。
河北兵敗的消息更令孫秀無計可施，同時自三王舉兵以來孫秀都因怕百宮和宿衞將士將他和趙王殺了以結束事件，故一直留在中書省不出。正當孫秀和黨眾籌劃下一步行動時，四月辛酉日，左將軍王輿就起兵攻討孫秀，在中書省殺死孫秀等人、殺害趙王黨羽、以趙王名義下達騶虞幡命眾將士解兵、將趙王及其三名兒子押到金鏞城，並從金鏞城迎惠帝復位。不久，趙王被賜死，三子亦在廷尉刑訊致死，所有趙王任命的官員都被撤換；河間王軍在此時仍只到潼關，聞訊退兵；而齊王及成都王都率眾入洛陽。齊王自以首先起兵，於是行事專擅，成都王就聽盧志的建言，將功勞都推給齊王，並以母疾為由，在朝見惠帝及拜謁太廟後就離開洛陽，回到鄴城，贏得四方稱譽。而本因楚王瑋而被降封為常山王的司馬乂亦獲恢復長沙王爵位。
齊王及後以大司馬身份掌政，但他隨即大興土木，並沉迷酒色逸樂，不朝惠帝，亦不視朝政，用人唯親，大封親信，甚至加罪不經大司馬府而直接上奏的大臣以及殺害諫臣，種種事跡都令眾人失望，同時大家也就歸心於先前謙退的成都王。其時任翊軍將軍的李含因與齊王參軍皇甫商及右司馬趙驤不和，夏侯奭的哥哥也在齊王府中，故李含很不安，於是隻身西奔長安，向河間王聲稱受了密詔，獻計讓河間王檄命長沙王乂討伐齊王，待齊王消滅長沙王後再以此為由討伐齊王，並以有名望的成都王接掌政事，河間王遂得建立大功勳。河間王聽從，遂於永寧二年（302年）十二月上表稱齊王之罪，率軍東進，並命長沙王乂廢齊王。齊王接到上表後驚懼不已，召見百官討論，司徒王戎及東海王司馬越勸齊王讓位退避，但齊王親信葛旟卻堅持不退；其時齊王就派董艾進攻長沙王，而長沙王就即率兵入宮，以天子名義進攻齊王府，兩軍遂在城內激戰。大戰三日以後，齊王兵敗被擒，被長沙王下令斬首處死，梟首曝屍，其他黨羽都被誅殺三族，齊王三子皆被囚禁在金鏞城。
長沙王乂大出河間王及李含所料戰勝齊王，並以太尉、都督中外諸軍事留在洛陽中主政，遂令原本的計劃不能成事。河間王於是命李含為河南尹，讓其與侍中馮蓀及中書令卞粹等殺了長沙王。皇甫商知道李含的意圖，遂將李含的計劃告知長沙王，最終李含等人被長沙王所殺。另一方面，成都王穎雖然以大將軍、錄尚書事身份遙控朝政，長沙王每事亦都會詢問身在鄴城的他，但他還是不欲長沙王在內妨礙他，於是就與河間王聯手要除去長沙王。河間王即以李含等被殺為藉口出兵，司馬穎亦響應，二王聲明要誅殺皇甫商及外戚羊玄之，並廢掉長沙王權力。河間王派張方率七萬精兵攻向洛陽，成都王就親率大軍進攻，面對二王來伐，長沙王受命為大都督拒戰，兩軍自八月攻戰到十月，最終長沙王擊退來攻的張方，逼其守壘自保，但無法消滅張方軍。另成都王攻至洛陽，朝廷試圖憑藉成都及長沙二人兄弟的關係展開和談，試圖平息干戈，但成都王不允，於是戰事持續。長沙王屢敗成都王軍，殺俘共計六七萬人，洛陽雖然爆發饑荒但兵眾仍然堅毅抗敵，連張方也覺得不太可能成功，想要退兵。不過，司空東海王越卻怕長沙王撐不下去，於是在次年（304年）正月聯結殿中諸將把長沙王囚於金鏞城，眾士兵憤恨戰事功敗垂成，打算救出長沙王以繼續作戰，竟讓東海王下殺機，將長沙王送到張方那裏，以絕眾心。張方於是將長沙王殺死，二王於是取得勝利。
成都王戰後獲增封二十郡，升任丞相，但不久就返回根據地鄴城，由東海王守尚書令作為留守。不久河間王更表奏廢掉太子司馬覃，立成都王為皇太弟。可是，成都王將洛陽的乘輿服飾都遷到鄴城，殺害他忌憚的殿中禁軍，將宿衞都換成自己的人，表現更是驕奢，有無君之跡，又重用親信孟玖，加上上一年領兵出征荊州亂民張昌時所表現的「恃功驕奢、百度廢弛」，皆令朝野失望。同時這些行為亦為司馬穎招來討伐的藉口。
永安元年（304年）七月，亦是成都王當上皇太弟五個月後，右衞將軍陳眕、長沙王舊將上官巳等人於洛陽起兵討伐成都王，復立清河王司馬覃為太子，並奉惠帝出征，司徒王戎、東海王司馬越、吳王司馬晏、高密王司馬略等人亦隨軍，眾達十萬多人。大軍奉天子來攻的消息震動鄴城，成都王亦感害怕，東安王司馬繇當時就勸成都王主動歸罪，但司馬王混、參軍崔曠就勸其抵抗，最終成都王選擇抵抗，命石超率五萬兵到蕩陰防備。另一方面，陳眕的兩個弟弟陳匡及陳規自鄴投奔大軍，稱鄴中已經自潰，故大軍都鬆懈起來，終於在蕩陰遭受石超軍攻擊時落得大敗，隨軍王公大臣都奔散，連惠帝也被俘虜至鄴城。成都王抵抗成功之餘還得到了天子，於是下令改元建武，殺死建議投降的東安王，並置百官，生殺大事也由自己決定，並在鄴南郊祀。
陳眕與上官巳等在戰敗後奉司馬覃為主守住洛陽，但其實司馬顒在大軍發出時時就派了張方支援成都王，張方來到洛陽後擊敗上官巳等人，控制洛陽，再廢司馬覃及羊皇后。
早在三王起兵討伐司馬倫之時，都督幽州諸軍事王浚就沒有響應，不過成都王一直沒時間去討伐。成都王在蕩陰之戰後伺機請幽州刺史石堪為自己左司馬，送了和演接任刺史，其實就想讓和演找機會殺了王浚，吞併其勢力。不過與和演一起策劃行刺行動的烏丸單于審登因天雨影響原定行動而以為這有逆天意，將事情告訴王浚，王浚遂與并州刺史東瀛公司馬騰及審登聯手消滅和演。王浚兼領幽州刺史，並大舉整軍，與段部鮮卑段務勿塵聯手進攻成都王，令主簿祁弘在平棘擊敗石超後乘勝攻進鄴城，縱容鮮卑兵大肆搶掠。而成都王在石超兵敗後就已帶著惠帝出逃，用了五日到了張方控制的洛陽。
而張方軍在洛陽胡作非為，時間久了士兵更有西返的意圖，張方此時率兵入宮擄掠並抓惠帝到自己營壘中，更差點要將洛陽宮殿焚毀，接著張方就率軍帶惠帝等人西赴河間王的根據地長安。同時河間王表廢成都王皇太弟之位，遣其歸國，改以豫章王司馬熾為皇太弟。
張方強脅惠帝西遷的行為令天下憤怨，東海王司馬越於是乘機於永興二年（305年）在徐州起兵討伐河間王，並得兗州刺史東平王司馬楙、都督青州諸軍事高密王司馬略、都督并州諸軍事東瀛公司馬騰、都督冀州諸軍事平昌公司馬模、都督豫州諸軍事范陽王司馬虓及幽州刺史王浚等人支持，更獲推為盟主，聲言要迎惠帝東歸洛陽，更得不少朝臣支持。河間王知東海王等起兵，一度打算退讓，接受其送帝還都，分陝而居的條件，但為張方所阻，於是下令免去東海王等人的官職，命其還國，亦派張方率兵十萬討伐。其時成都王舊將公師藩及汲桑在河北起兵，由於河北人民思念成都王，故此造成人心不穩，河間王亦聽從張方建議，恢復成都王的職位，讓他重駐鄴城，協助對抗東海王為首的力量。另一方面，豫州刺史劉喬本也起兵要迎惠帝東歸，但他卻因不接受東海王的調度，出兵對抗東海王所派的豫州刺史范陽王虓，又上書陳述穎川太守劉輿的親昵范陽王的罪行。河間王因而派兵支援劉喬，在許昌擊敗范陽王軍，逼使其逃到河北。原本也支持討伐的東平王司馬楙亦因為不滿范陽王派苟晞復任兗州刺史，調其至青州的行動而反叛討伐軍，並與劉喬交結。但不久，范陽王得王浚借兵而反擊，在廩丘擊敗東平王，東平王敗返封國。接著范陽王軍聯合東海王的大軍要西進關中，大軍到蕭縣時，劉喬怯而派兒子劉祐在蕭縣的靈壁作出防備，但被司馬越擊敗，劉喬軍於是潰散，南奔平氏。另一方面，成都王到洛陽後亦怯於東海王兵強，不敢繼續北進，於是折返關中。河間王得知劉喬兵敗後大懼，甫開始就想退讓求和的他此時就更想息兵，但就顧慮主戰的張方而猶豫不決。永興三年（306年），河間王聽信張方謀反的假消息而派郅輔殺死張方，並傳首討伐軍，但討伐軍接到張方首級後沒有退兵，反而以此招降關中其他軍隊，並繼續奪取關中諸郡。其年五月，河間王最後所派的馬瞻及郭傳於霸水戰敗後，討伐軍就攻入長安，迎惠帝東歸，河間王則出逃。
在東海王將祁弘護送之下，惠帝在六月返回洛陽，改元光熙。成都王在惠帝東歸時就經武關出新野，途中被鎮南將軍劉弘及南中郎將劉陶阻截，於是轉奔朝歌想到公師藩那裏，但遇是被頓丘太守馮嵩所捕，被囚在鄴城。同年十月，鎮守鄴城的范陽王去世，其長史劉輿擔心得當地人心的成都王會成為禍患，於是假傳詔命將其殺死。惠帝東歸後長安由鎮西將軍梁柳所守，但馬瞻隨後就擊殺梁柳，復取長安，並迎河間王回城。可是關中地區都起兵對抗河間王勢力，河間王僅能控制長安城。十一月，惠帝中毒去世，晉懷帝立，朝政仍由東海王主掌，並在次月藉召河間王入朝任司徒的機會在途中殺害河間王。東海王接著主導晉朝的朝政，直至永嘉五年（311年）去世為止。
八王之亂歷時達十六年，期間時有戰亂，後期朝廷已無法掌握全國，受戰亂影響地區亦愈來愈大，除了諸王互相攻伐的戰事外，期間還有氐人齊萬年的變亂，以及成漢和漢趙兩個政權針對西晉朝廷的一系列戰爭，南方亦有變民杜曾、王如及張昌的起事。這些戰事都對全國不少地區都造成嚴重破壞，饑荒、疫病頻生, 亦令到不少人被逼離開家鄉求活，成為流民。成漢的領導者李特、李流、李雄皆本住洛陽，就因逃避齊萬年叛亂而入蜀，但就因為益州刺史趙廞見八王之亂的局面而有自立之願，就任了他們為爪牙，及至後來趙廞以及下任刺史羅尚的處理失當而令李氏叛晉自立，建立十六國中的成漢割據政權。
早在東漢末年南匈奴諸部就因黃巾之亂內遷河內郡，曹操分匈奴為五部時，各部人亦都聚居在并州一帶，繼持至晉朝。匈奴族人劉淵在八王之亂中與成都王聯結，並藉此聯結匈奴諸部，壯大實力。成都王被王浚等擊敗後，劉淵就乘時而起，建立漢國，更是日後滅亡西晉的力量。魏晉年間，除匈奴外其他外族亦有內遷，而八王之亂期間及後續亦屢見外族參與中原戰事，如并州刺史劉琨曾多次與代王拓跋猗盧聯結對抗漢國的進攻；王浚與司馬騰亦曾與烏桓人及段部鮮卑聯手對抗成都王，這些促成五胡亂華及十六國時代。
晉初體制本將地方軍事及民政分開，分別由都督及刺史掌管，而在滅吳後撤去地方軍力，更讓各都督成為地方軍事力量。但到八王之亂後期，地方無法抵抗變亂，遂令制度失效，刺史再兼領一方軍政及民政，如兼領幽冀的王浚、領并州的劉琨及領青州的苟晞都是一方的軍鎮，在北方抵抗漢國的侵襲，苟晞甚至曾出檄文討伐東海王司馬越。永嘉之亂後洛陽朝廷傾覆，據有一方的王浚甚至有自立之願，但這些兵鎮後來都被漢國所滅。
東海王司馬越在八王之亂後掌握朝權，但期間不但無力控制日益壯大的匈奴漢國政權，更排除異己，殺害中書監繆播、散騎常侍王延等人，大失人心。後更在永嘉四年以討漢國為率領行臺出京，帶著大批軍隊及王公大臣離開首都洛陽，致令洛陽防禦薄弱，盜賊橫行。在其死後，他帶領的大軍以及大批王公大臣在苦縣寧平城被漢將石勒屠殺，不久洛陽亦在永嘉之亂中陷落。秦王司馬鄴雖在晉懷帝遇害後於長安即位延續國祚，但也在建興四年（316年）被俘，西晉正式滅亡。而早在蕩陰之敗後，東海王東走並在徐州收聚兵眾，及後更起兵討伐河間王，迎帝東歸。當時東海王就留了琅邪王司馬睿以安東將軍都督揚州諸軍事，鎮守下邳。後來琅邪王就移鎮建鄴，在江左發展，奠下東晉的基礎。晉愍帝死後，琅邪王就即位為帝，即晉元帝。