永康二年(301年),赵王司马伦专权心切,便将惠帝移到金墉,自立为王,改元建始。不久,齐王司马冏起兵反赵王司马伦,成都王司马颖在邺(今河南临漳),常山王司马冏在其藩地,也一同起兵响应。河间王司马颙在关中,派张方去援助赵王司马伦,但一见齐王司马冏,成都王司马颖势力甚大,便反过来又支持二王。由于诸王的投入,“八王之乱”开始发展为一场大混战。四月,左卫将军王舆与尚书广陵公漼带兵入宫,杀了孙秀,先逐赵王伦归第,随后一同杀了,将惠帝重新从金墉迎回。齐王冏带兵至洛阳,甲兵十万,旌旗招展,震动京师,惠帝拜为大司马,都督中外军事,加九锡之命,又封成都王司马颖为大将军,录尚书事也加九锡。但卢志却不出来私下劝司马颖推崇齐王冏,以显无私欲之心。成都王司马颖授受了他的建议,以母亲身体不佳为托辞不受九锡,回到邺城。
齐王冏辅政,一开始就大建官邸,沉湎酒色,不入朝见,外事惟亲是宠,选举不均,以至朝廷侧目,海内失望。司马冏兄东莱王司马蕤与王舆一起计谋废除齐王司马冏,但事情泄密,东莱王冏蕤被免为庶人,王舆被杀。
永宁二年(302年),河间王司马颙起‘兵反齐王冏,成都王司马颖响应,长沙王也率兵前来协助。长沙王见了成都王司马颖,说:“天下之事,应以先帝之业为先,我们应当维护它。”听者对他都有所惧怕。李含这时便对河间王司马颙说:“可以放令让长沙王去讨伐齐王冏,并且同时把这事预先透漏给齐王冏,齐王冏一定会起兵灭杀长沙王,然后再将罪归于齐王冏,消灭齐王冏而立成都王司马颖。”河间王司马颙听从了李含的计策。果然,齐王冏派将领董艾去袭击长沙王,双方交战后齐王冏部败阵。长沙王抓住了齐王冏,并将他杀了。河间王司马颙原以为冏弱而强,可是结局却出乎意料,于是便发布通告,动员诸方力量讨伐长沙王。
太安二年(303年),成都王司马颖、河间王司马颙起兵攻打长沙王。河间王颙以张方为都督,领精兵七万开赴洛阳,成都王司马颖以陆机为将军,督王粹、牵秀、石超等二十余万人,浩浩荡荡向洛阳逼近。惠帝暂避洛阳西十三里桥,参军皇甫商率兵在宣阳(属河南)抵抗张方,被张方击败。张方进入洛阳,烧毁清明、开阳二门,死者万计。石超带兵追赶惠帝的随从。攻下缑氏(河南偃师)后,放火焚烧。不久,王师回旋洛阳,在东阳门击破牵秀,在建春门击破陆机。长沙王奉惠帝之命讨伐张方,在洛阳城中交战,张方部下见惠帝乘舆前来,便往后退去,张方阻止不住,大败而去,退到十三里桥。这时人心沮丧,有人便劝张方趁夜溜之大吉,张方说:“兵之胜败是常事,贵在因败而反过来取胜。我们可以出其不意袭击洛城,这才叫做用兵之奇。”于是在夜里偷偷带兵逼进洛城。长沙王刚刚打了胜仗,有些麻痹,这时率兵出战,被张方打败。张方围城多日,但始终不能攻克,想撤回长安。
这时,被张方所围的洛阳缺粮大饥,殿中的一些将领也苦于死守,便密谋趁夜抓住长沙王,逼东海王司马越出来作主,并通知惠帝免除长沙王的职位,将他送到金墉。张方则趁机派部将赶到金墉,杀了长沙王。八王之中,长沙王是最有才略的一个。等到长沙王死,大局便越发不可收拾。永兴元年(304年),东海王越于是开城迎成都王司马颖,以成都王司马颖为丞相,东海王越为尚书令。成都王司马颖仍率部还邺城,张方也在掠劫奴婢万余人后西还。
该年七月,右卫将军陈眕及长沙王的旧将上官已等人起兵讨伐成都王司马颖,惠帝也亲自北征,聚兵十万以上,逼近邺城。成都王司马颖派石超迎战,结果王师被打败,并抓获了惠帝,侍中嵇绍(嵇康子)保护惠帝,被兵士所杀。河间王司马颙起兵来协助成都王司马颖,命令张方率兵进入洛阳,东海王越逃回东海。
于此同时,王浚在幽州起兵,联合鲜卑、乌桓及并州刺史东赢公腾,南下讨伐成都王司马颖。成都王司马颖命石超等人抵抗,被击败。邺中大震,人心涣散。卢志劝成都王司马颖将惠帝送回洛阳,五天后至洛城。王浚乘胜追击,攻克邺城,杀烧劫掠,荼毒百姓。张方也趁势逼惠帝走洛阳,行前,军士抢劫后宫、分争府藏,一时魏晋以来的宝藏,一扫而空。十一月,惠帝一行到达长安,立豫章王炽为皇太帝,以河间王司马颙都督中外军务,张方为中领军,录尚书事,领京兆太守。
永兴二年(305年),东海王司马越起兵征伐河间王司马颙及张方,王浚等推东海王司马越为盟主,东海王司马越于是以刘乔为冀州刺史,以范阳王司马虓领豫州。刘乔与范阳王九虎有隙,河间王司马颙便命其部将配合刘乔一起攻打范阳王司马虓。司马虓失败,派人去幽州求兵,得到突骑八百余人,打败了刘乔。河间王司马颙命令刘弘等去援助刘乔,刘弘认为张方一伙残暴无度,一定会败,便派合得到东海王司马越处求和。成都王司马颖进驻洛阳,与河间王司马颙一同抵御东海王司马越。永兴三年(306年),范阳王司马虓渡官渡(河南中牟县北),攻下荥阳,杀死石超,分兵许昌,又破刘乔。河间王司马颙听说刘乔败,大为惊惧,心想罢兵,但又恐怕张方不会答应,正犹豫不定时,有人劝他还是赶紧杀了张方,以此谢罪。于是河间王司马颙派郅辅去杀了张方,将首级示之东军,并要求与东海王司马越求和。
东海王司马越不答应,发兵西进。成都王司马颖从洛阳逃至华阳。东海王司马越派其部将祁弘等进兵长安迎惠帝。河间王司马颙知道大势不妙,先派人杀了郅辅,然后派彭随等前去迎战祁弘,但大败而归。河间王司马颙又派马瞻等低御祁弘部队,也战败而亡。河间王司马颙一人乘马,逃往大臼山。祁弘于是率兵进入长安,所部鲜卑在城中大掠,杀人二万人余。不日便奉命护惠帝返回洛阳。惠帝以东海王司马越为太傅,录尚书事。成都王司马颖则从华阳过武关,想回自己藩地,被刘弘中途截住,成都王司马颖丢下母亲、妻子,单车与二子渡河奔朝歌,想搜罗故将残兵,归属公师藩,被冯嵩在中途抓住,送到邺城,不久被杀。河间王司马颙逃到南山后,此时正被糜晃等围在城中,不久诏他为司马,河间王司马颙信以为真,结果在中途为南阳王司马模部将杀死在车中。永兴三年十一日,惠帝中毒而死,传为东海王司马越所害,太帝炽即位,是为怀帝。“八王之乱”自此结束。
八王之乱前后历经十六年,给了建立不久的晋王朝以毁灭性的打击,从内部挫伤了它的元气,并因无暇顾及边防,而使少数民族的贵族能乘机起兵,扶植势力,对此后历史产生了巨大的消极作用。
西晋的灭亡
永安三年(306年),西晋“八王之乱”终于降下帷幕。东海王司马越取得最后的胜利。不久,司马越毒死惠帝,另立司马炽为帝,是为怀帝。第二年改元永嘉(307—313年)。永嘉时期,民族矛盾、阶级矛盾非常尖锐,自然灾难十分严重,西晋政权处于风雨飘摇之中。
永嘉元年(307年)二月,东莱豪族王弥从青、徐起兵反晋,自称为征东大将军。司马越派公车令鞠羡讨伐王弥,被王弥所杀。稍后,汲桑、石勒招集奴隶、囚徒和流民,队伍不断壮大,攻破邺城,杀西晋邺城都督、新蔡王司马腾。司马越令兖州刺史荀晞迎战,双方在阴平(今河北大名东)、平原(今山东平原)一带对垒数月,大小三十余战,互有胜负。由于荀晞实力雄厚,经验丰富,终于击溃汲桑、石勒。后汲桑战死。石勒投奔匈奴贵族刘渊建立的汉政权。王弥被晋将荀纯击败亦归附于汉。这时,西晋军队比反晋势力略占优势,但当晋军在战场上取得局部胜利后,统治者内部猜嫌又起。司马越因荀晞镇压汲、石有功,升其为抚军将军,都督青兖二州。于是,司马越拜荀晞征东大将军、开府仪同三司、侍中、假节、都督青州诸军事、青州刺史,又进其爵为东平郡公。荀晞立下大功,反失去兖州地盘,对司马越十分不满。到青州后,荀晞不再服从中央,而擅自置立参佐和守令。
永嘉二、三年(308—309年),北方各族反晋斗争力量都集中到汉王刘渊的旗帜下,反晋浪潮再度高涨,刘聪南据太行,石勒东下赵魏,王弥攻击青、徐、兖、豫等州。永定嘉三年秋冬,刘渊对洛阳发起两次攻击。九月,刘聪率军长驱至宜阳(今河南宜阳西)。自持兵强,懈怠不设备,遭到西晋弘农太守垣延的夜袭,大败而归。十一月,刘聪、王弥、刘曜等以精骑五万在前,呼延翼部以步卒后继,再次进攻洛阳。由于晋军顽强抵抗,呼延翼兵败,被部下杀死,汉军损失惨重。汉军两次失利,说明晋军尚有一定实力。但是,西晋统治者内部,尤其是司马越与怀帝之间的矛盾日益尖锐。怀帝稍亲政事,司马越立即流露出不悦之色,怀帝有心腹近臣缪播、缪胤、王延数人,司马越被诬犯上作乱,杀之于帝侧,怀帝亦悲亦惧,惟欷嘘叹息而已。后来,司马越悉数驱逐殿中武官,代之以东海国兵。
永嘉四年(310年)。汉军分兵消灭各地晋军有生力量,积聚粮食,扩大武装。八月,刘渊病死,刘聪篡夺大位。这年冬天,刘聪发起对洛阳的总攻,声势浩大。洛阳危如垒卵。司马越遣使征发各地援军,怀帝悲悲切切嘱咐使者转告各征镇说:“现在还有救,晚了就没救了。”可是使者如泥牛入海,杳无消息,始终不见各地都督、刺史发来一兵一卒。其时并州刘琨不能自保,王浚割据幽燕,或派不出兵,或按兵不动,荆湘交广四州都督山简“优游卒岁,惟酒是耽”,他派出的勤王之师在半路上就被打败。荆州刺史王澄也是只知纵酒,不亲庶事,他领着援军出来,听说山简败了,当即散众而还。洛阳文官武吏闻后都惶惶不安,很多人主张迁都避难。而身为宰辅与最高军事统帅的司马越既无退敌良策,又无坚守之志,竟以出讨或石勒借口,把皇帝扔在洛阳,而带领大军和一大批公卿官吏,匆匆出发。
司马越屯兵于项(今河南淮阳),留下潘滔为河南尹,总摄洛阳之事。潘滔不顾大局,再次挑起内部事端,诬害荀晞,荀晞兵力强盛,有恃无恐,岂能善罢甘休,上表强烈要求诛杀潘滔。司马越不许,荀晞更是怒不可遏,公开与司马越决裂,移文诸州郡列举自己的功绩与司马越的罪状。怀帝本来就憎恶司马越擅权,便诏令荀晞为大将军讨伐司马越,在汉军大兵压境的情况下,荀晞、司马越剑拔弩张,自相残杀。司马越心力交瘁,忧愤成疾。永嘉五年四月,病死于项。
司马越既死,众人推王衍为元帅,王衍不知所措,推让于襄阳王司马范,司马范也不敢接受,军中无人主事,乱作一团。他们置洛阳安危和怀帝的死活于不顾,扶司马越的灵柩回东海国,一二十万大军跟着向东逃跑。石勒闻报,立刻率轻骑追到苦县(今河南鹿邑东)、大败晋军,然后又指挥骑兵围攻晋军,乱箭齐发,晋军将士相互践踏,尸积如山,几无幸免者。王衍、司马范等王公贵族都束手就擒,石勒令对司马越剖棺焚尸,以示惩罚。又与王衍见面,王衍陈说西晋祸乱的原因,一再诉说自己不预政事,与己无关。为求活命,王衍劝石勒称帝。石勒怒喝道:“你名重天下,身居要职,且是少年登朝,直至白首,怎么能说不预政事?破坏天下,正是你的罪恶!”当晚,石勒派人推倒王衍等人住处的墙壁,把他们埋在残垣断壁里。
在洛阳危难中,荀晞曾建议迁都仓垣,又派兵迎搂怀帝,由于潘滔阻拦,也由于近臣贪恋洛阳财产,迁都没能实现,只能困守愁城。待到洛阳陷入绝境,宫廷侍卫或死或逃,没剩下几个人,车子也没有一辆。在几十名官吏的陪同下,怀帝步行走出宫门,准备逃离洛阳,一行人刚刚走到铜驼街,突然遇见一群拦路抢劫的饥民,只得退回宫中。七月,汉军呼延晏、刘曜、石勒、王弥等攻陷洛阳,俘获怀帝。汉军大肆烧杀掠夺,官吏百姓死者三万多人,城内一片大火,宫庙、官舍化为一片废墟。
汉帝被俘虏到平阳(今山西临汾),在他被杀之前,西晋各地的残余势力纷纷建立临时朝廷。司徒傅祗首先在洛阳建立行台,接着司空荀藩也在密县建立行台,奉秦王司马业为主,后徙屯许昌。同时,荀晞拥豫章王司马端为皇太子,而自命都督中外诸军事、录尚书事并在仓垣建行台,稍后,幽州王浚又立一个皇太子,这些临时朝廷的创立者或有复兴晋室的忠心,或有取代晋室的野心,但都维持不长。傅祗征兵四方,久候不至,自己染暴疾而亡。荀藩手下无兵,依赖阎鼎控聚的数千流民,反受阎鼎所制,荀晞骄奢苛暴,部众离叛,加上疫病饥馑,不久被石勒打败,他与司马端都当了俘虏。王浚局促于幽燕,调役繁重,属下不堪其命,鲜卑、乌桓都叛逃而走,兵势不断削弱,他所立的皇太子也莫名其妙地失踪了。
永嘉五年(311年)九月,刘曜占领长安,杀死守将南阳王司马模,其时关中诸郡,“百姓饥馑,白骨蔽野,百无一存”。晋安定太守贾疋,冯诩太守索綝,安夷护军鞠允,率领州刺史鞠特、扶风太守梁综合兵十五万围攻长安,屡败刘曜,刘曜不得不放弃长安,驱掠关中男女八万口退还平阳。时值阎鼎裹胁秦王司马业入关,贾疋迎之人居长安,立为皇太子。不久,贾疋战死,朝中诸将因争权大动干戈,阎鼎杀死梁综、鞠允、索綝等,又攻阎鼎,阎鼎出奔被杀。永喜七年(313年)五月,怀帝死讯传到长安,司马业继位为帝,他就是西晋的末代皇帝愍帝。这位13岁的皇帝即位时,“长安城中,户不盈百,蒿棘成林,公私有车四乘,百官无章服、印绶,惟桑版署号而已”。
鞠允在关中辅佐愍帝,艰苦地坚持了三年多,经常遭到刘聪、刘曜的攻击。建兴四年(316年),刘曜又攻入关中,进围长安。长安城中大饥,米一斗值黄金二两,人相食,死者大半。太仓中只余面饼数十个,鞠允磨为粉屑,熬粥以供帝室,很快也吃光了。十一月,愍帝出降刘曜,被送到平阳,次年被杀,西晋灭亡。
少数民族的内迁
东汉末年至十六国时期少数民族大规模内迁,内迁的民族主要有匈奴、鲜卑、乌桓、羯族、羌族、氐族、賨人。
匈奴是生活在大漠草原上的一支游牧民族。秦汉之际冒顿为匈奴单于,相继征服了东至辽水、西达西域,北抵贝尔加湖、南邻长城的广大地区。东汉建武二十二年(46年),蒙古草原发生大旱灾,赤地千里,匈奴分裂为两支,一支为北匈奴,向西方迁移,一支为南匈奴依附东汉,居于五原郡(今内蒙古自治区五原县境内),后来又逐渐南移,集中到并州北部的汾河流域。建安十一年(206年),曹操打败袁绍的外甥、并州刺史高于,取得并州后,命梁习为别部司马领并州刺史。梁习到并州后,采取恩威并济、软硬兼施的办法使匈奴“单于恭顺,名王稽颡、部曲服事供职,同于编户”,匈奴归附了曹操。