为尚书令。成都王颖胜利后，班师返邺，政治中心北移。而后东海王越集结各方兵力，挟惠帝讨伐成都王颖，最后失败，晋惠帝被俘，东海王越逃至其封国东海（今山东郯城北），河间王颙将领张方佔领洛阳。不久东海王越的亲弟并州刺史东瀛公司马腾及幽州刺史王浚联合异族乌桓、羯朱等势力击败成都王颖。成都王颖挟晋惠帝逃至洛阳，投靠拥有关中及洛阳的河间王颙，最后被废，河间王颙改立司马炽为皇太弟。305年东海王越在山东再次起兵，西向进攻关中。306年东海王越攻入长安。河间王颙和成都王颖败走，司马颖被杀。东海王越迎惠帝还洛阳，司马颙复夺