陆机幕府中的正直之士如王彰,就说得很清楚,“机,吴人,殿下用之太过,北土旧将皆疾之耳。”陆云被害前,蔡克向成都王叩头流血,说陆云是为孟玖所怨,人人都知道,求他免陆云一死。成都王的心思有点松动了,孟玖见了,马上一面把主子扶入内堂,一面催手下动手。成都王用陆机为大将,是一错;听谗言杀陆机,是再错;进而杀陆云,是三错。看他的行为,简单得像是受孟玖操纵的傀儡,这种昏王如何成得大事!只可惜陆氏兄弟不能效法张翰、顾荣,以致白白送了性命。陆机临死时说:“华亭鹤唳,可复闻乎!”但是他觉悟得太迟了。
张方很能打仗,但也有胜有败。九月,他一度攻入京城,大肆抢掠后退出。十月,长沙王乂带着惠帝,进行反击。专制时代,皇帝真有点威慑作用,张方部下的将士望见车驾,纷纷后退。张方打了个大败仗,退到城西的十三里桥。这时,部下还想后撤,张方却反其道而行之,乘敌人战胜后疏于防备的机会,在夜里寂静无声地推进到离城七里的地方,并筑起好几重壁垒。城里发觉后,发兵来攻,因工事坚团,不能得手。
战局陷入了相持状态。洛阳城里的人力物力都出现了问题。兵源缺乏,只得征发家奴;十三岁以上的男孩都要服劳役了,米价涨到了每石一万文钱。东晋初以击揖渡江闻名的祖逖,这时是长沙王乂的主簿,他献一条计:派人到西北去,命雍州刺史刘沈起兵袭击河间王颙的后方,使他不得不召回张方,以解京城之危。雍州的治所在临泾(今甘肃镇原东南),辖有七郡地方(在今陕西、甘肃、宁夏各一部)。这是一条好计,然而用得迟了,已经来不及挽救洛阳的危局。
太安三年(304年)正月二十五日,正在张方觉得打下去没有把握,考虑撤退的时候,洛阳发生内变。东海王司马越联络不愿意再战的宿卫将校,把长沙王乂扣留。次日,东海王越请惠帝下诏,罢免司马乂的官职,改元为永安元年,开城停战。这一次,打了半年多仗(从九月到正月,中间有个闰十二月),死的人不计其数。
张方入城,东海王越即把长沙王乂交给了他。张方这人极其残酷,竟把他放在火上,活活烤死。张方部下的军士看了,也觉得太惨,流下了眼泪。长沙王又是“八王之乱”中死掉的第五个王。
获得胜利果实的是成都王颖。他的军队战绩并不好,损失了六七万人,但是他俨然以胜利者的姿态进入洛阳,命部将石超等率兵五万,镇守洛阳十二座城门,他本人不留驻洛阳,仍回邺城。
河间王颙的后方一度吃紧,长安险些被刘沈的军队占领,为此他不得不赶紧召回张方。张方掳了洛阳的官私奴婢一万多人西回,途中缺粮,就杀人与牛马同煮,分而食之。到了关中,他派部将打败了刘沈军,又生擒刘沈。河间王颙将刘沈先用鞭打,然后处死。
三月,应河间王颙的要求,惠帝下诏立成都王颖为皇太弟,成都王离帝位只有一步之遥了。然而,他没有人君之度的真相早已被人看穿,所以局势又很快发生变化,爆发了以东海王越为主角的皇族大混战,这是混战第四个也是最后一个段落。
同年(这时还称永安元年)七月,东海王越宣布讨伐成都王颖,石超闻讯赶奔回邺。东海王越挟了惠帝,一同北征,兵到荡阴(今河南汤阴西南),被石超击败。混战时,可怜那个皇帝而部受伤,身中三箭,跌在乱草之中。这时文官嵇绍(嵇康的儿子)身穿朝服,跨上御辇,意欲护卫皇帝,结果被兵士所杀,鲜血溅到惠帝的袍上。惠帝虽则低能,还有点良心,以后一直保存这件袍子,不准洗濯,作为纪念。战后,惠帝被迎送到邺,把年号又改作建武。这是几个月里的第三个年号了。
东海王越逃回到封地东海(今山东郊城北),拒绝成都王颖提出和解的要求,联络各方,意欲再起。这时,洛阳已落到了张方的手中。原来,河间王颙得了东海王越北征的消息,就派张方去攻洛阳,牵制他的后方。洛阳留守的兵力薄弱,张方得手后,河间王颙就命他镇守洛阳。
东海王越要破成都、河间二王,原本极为困难,但都督幽州诸军事王浚的插手,给他提供了机会。
王浚是个心有图谋的小人。当年三王联合反赵王伦时,他看不准谁胜谁败,便禁止所部士民应三王招募,以坐观成败。他也想称霸割据,但苦于实力不足,便把一个女儿嫁给鲜卑段氏的首领段务勿尘,请朝廷封段务勿尘为辽西公;又把另一个女儿嫁给鲜卑宇文氏别部的首领素怒延。利用鲜卑部落的骑兵来参加内地的混战,是他早已打定的主意。他和成都王颖都有消灭对方的打算。这年七月,王浚联合鲜卑、乌桓的兵力,与东海王越的兄弟东赢公司马腾合作,南下攻邺。
成都王颖派石超等北上抵御。八月,石超等连战都败。邺中得讯,百官士卒纷纷逃走,全城陷入一片混乱。卢志劝成都王拥惠帝退回洛阳,成都王答应了,卢志并连夜做好了准备。不料成都王的母亲程太妃不肯离开邺中,成都王不能当机立断,耽误了时刻。将士们都想快逃,见出发号令迟延不发,便自行散去。原来一万五千人的队伍,一下子只剩几十个人。成都王没奈何,只带得几十名骑兵,与卢志护着惠帝坐的御用牛车(晋时多用牛车,有的很考究,牛也跑得很快),往洛阳而去。仓猝之间,他们忘了带钱,只有一名宦官身边有三千文钱。流亡途中,要吃饭非用钱去买不可,这几十个人只能半饥半饱抵过这几天工夫。渡过黄河以后,洛阳有兵来接,情况才有所改善。行近洛阳,张方出城来迎。他才下马要拜见皇帝,可惠帝先已下车,并要他免礼。这时,皇帝、亲王、太妃等人,都有了一种脱难的感觉,然而他们不能高兴得太早了,还有大灾大难在等着他们。他们把张方看作救星,其实张方却包藏着祸心。
洛阳的事情,一切都听张方作主,成都王颖的话,没有人肯听。在洛阳住了几个月,张方的兵士把城里的财富抢得差不多了,便都想回关中老家。十一月初一,张方带兵上殿。惠帝见他来意不善,逃到后园竹林中躲起来,仍被兵士拖出逼上牛车。惠帝无可奈何,只要求安排车辆,以装载宫人、宝物。宫里本来并未遭劫,这一回却被张方的将士把财物抢得精光,宫女也被掳去。张方还想放火烧毁宫室宗庙,幸而卢志劝他不要效学董卓的行为,百年以后,还被人唾骂(董卓曾烧毁洛阳全城房屋,时在汉献帝初平元年[190年],去此一百十四年),张方才打消这念头。
惠帝到了长安,把河间王的征西将军府作为行宫。十二月,下诏罢免成都王颖的皇太弟身份,另立豫章王炽做皇太弟,以河间王颙都督中外诸军事,又改元永兴。连“太安”在内,这是本年的第四个年号。这些举动当然都是河间王颙作的主。
可局势仍不稳定。张方“劫迁车驾”之举很不得人心。永兴二年(305年)七月,东海王越以“纠集义旅,奉迎天子,还复旧都”为由,号召四方,起兵征讨河间王颙和张方,王浚等响应者即推他做盟主。这时成都王颖的旧将公师藩也在河北起兵,攻城略地,声势不小。
河间王颙见公师藩起兵,即命成都王颖都督河北诸军事,令其招抚。十二月,成都王颖到了洛阳,因兵力薄弱,无法渡河北上,只得停止前进。其时,东海王越的军队已经进至阳武(今河南原阳东南),离洛阳已不满三百里路了。
永兴三年(306年)正月,河间王颙见形势险恶,便想与东海王越和解。张方知道自己罪大,恐怕和解以后,会追究他劫掠宫室劫迁车驾之罪,就竭力反对。于是河间王颙即遣张方的熟人那辅,以送信为名去见张方,乘他看信的时候,把他砍死。
河间王颙把张方的头颅送到东海王越军前,请求和解。东海王越不许,继续西进。此时成都王颖在洛阳立足不住,狼狈西走,到了华阴,才知有河间王求和之事,便不敢再回长安,只得暂时停下,观望形势。
五月,东海王越所派的祁弘等军进入关中,击败河间王军,占领长安。河间王颙匹马逃到太白山中,百官也都逃到山里,拾橡实充饥。祁弘是王浚部下,由王浚派去帮东海王越的。他带的鲜卑骑兵在长安城中烧杀掳掠,杀了两万多人。
六月,惠帝被祁弘挟持到洛阳,算是“还复旧都”,便又改元光熙。这几年多次变更年号,史籍上往往以最后改定者为正式年号,害得看书的人眼花缭乱,实在头疼极了。
八月,东海王越任太傅、录尚书事,掌握了朝政。他是“八王之乱”的最后胜利者。但是这胜利不能保持得长久,因为天下己乱,不可能再恢复承平的时势了。
还有一点余波。在祁弘入关之时,成都王颖东窜西逃,宛如丧家之犬,最后在投奔公师藩的途中,被人擒获,解到他的老基地邺中被杀,年仅二十八岁。之前,他的官属只有卢志始终跟着他不走,最后料理了他的后事。河间王颙于祁弘退兵后,即回到长安。十二月,他奉东海王越命赴洛阳,在半路上被南阳王司马模(越之弟)的部将所杀。这二王是“八王之乱”中死的第六、第七个王。
白痴皇帝也于十一月中死去,相传是被东海王越毒死的。