将成为后患,就秘不发丧,而且令人装扮台使,矫晋惠帝诏书赐司马颖死。司马颖被看守他的人田徽缢死,时年二十八。他的两位儿子也被杀。
永兴三年(306年),司马越因为张方劫持迁移晋惠帝,天下人埋怨气愤,首先主张起事并和山东各诸侯限定日期奉迎晋惠帝归来。他先派人去劝说司马颙,叫他送晋惠帝回到京都,与司马颙划分陕地而治。司马颙想听从他的建议,但张方不同意。等到东边的军队取得大捷,司马颖等人失败,司马颙才下令张方的亲信将领郅辅夜里斩了张方,送其首级给东来的部队。不久又变卦,改派刁默守卫潼关,却归罪郅辅杀了张方,又斩了郅辅。司马颙的先遣部队将领吕朗等据守荥阳,范阳王司马虓的司马刘琨拿张方的首级给吕朗看,于是吕朗投降。当时东边的军队已很强大,打败刁默入关,司马颙畏惧,又派马瞻、郭伟在霸水抵抗他们,马瞻等战败逃跑。司马颙乘着单马车,逃到太白山。
司马越屯兵温县(今河南温县),部将祁弘率领鲜卑骑兵攻入长安,大肆抢掠。后祁弘挟持惠帝乘牛车返回洛阳,司马越率令大军护送。以皇太弟的太保梁柳任镇西将军,镇守关中。马瞻等人在司马越大军走后,又出来到了梁柳那里,趁机就在城内一起杀了梁柳。马瞻等与始平太守梁迈联合,到南山迎请司马颙。司马颙开始不肯入府,长安令苏众、记室督朱永劝司马颙上表谎称梁柳病死。弘农太守裴暠、秦国内史贾龛、安定太守贾疋等人发义兵征讨司马颙,斩了马瞻、梁迈等人。司马越派遣督护麋晃率领本封国的部队讨伐司马颙。到了郑地,司马颙的将领牵秀抵抗麋晃,麋晃斩了牵秀,并杀了他的两个儿子。东海军占据了关中,司马颙仅保守孤城而已。
惠帝下诏封司马越太傅录尚书事,以下邳、济阳(今河南兰考)二郡增封。不久后,晋惠帝在显阳殿食饼中毒逝世,坊间传言是被司马越毒死的。皇太弟司马炽继位,是为晋怀帝,委政事于司马越。吏部郎周穆与其妹夫诸葛玫游说司马越废司马炽,立清河王司马覃,让司马越