东海王兵败了,已无翻身出头之日。但东海王的弟弟司马腾却联合幽州都督王浚,带着少数民族鲜卑、乌桓部落的骑兵杀了过来。成都王的部队没有抵抗得住少数民族勇猛的骑兵。成都王只带几骑,弃了邺城,挟持着惠帝向洛阳逃去。
邺城即失,成都王司马颖的部下、匈奴贵族刘渊在巴蜀地区自立为王,起国号为“汉”,自称汉王。他及其儿子刘聪最后让本文主角、西晋最后的两个帝王吃尽了苦头。但这儿暂时不表。
惠帝入返洛阳后,河间王的部将张方领兵来迎。之后张方专治朝政,成都王司马颖因无兵马,倒是形同走尸。
张方的兵士,如同当年董卓的凉州兵一样,从长安方向来,也像董卓一样,要惠帝迁去长安。他们在洛阳抢劫,在宫中奸污宫女,抢劫珍宝,如无人劝说还想如董卓一样焚烧洛阳。张方挟持惠帝、成都王司马颖以及惠帝另一个弟弟豫章王司马炽到了长安,河间王司马颙就暂时成为西晋王朝真正的主人。他让惠帝下诏废掉司马颖的皇太弟身份,改立豫章王司马炽为皇太弟。
惠帝永兴二年(公元305年)七月,东海王司马越又以张方和河间王司马颙“劫颙车驾”为罪名,发檄天下讨伐河间王。河间王杀张方想与东海王和解。但东海王不与和解,其鲜卑兵团攻入关中,河间王司马颙败。鲜卑军纵兵大掠,杀掉两万多人后,又拥着惠帝回到洛阳。河间王仅保有长安一城。此后东海王掌握了朝政。除大封自己人外,追捕到了成都王司马颖并赐死。公元306年(惠帝光熙元年)12月,东海王司马越又毒死了惠帝。惠帝继位十六年,几乎年年都在动乱中渡过,到了此时,闭眼一去,倒还是得了一份清静,少了几多烦恼。惠帝时年四十八。