张方劫持惠帝司马衷强行迁都长安,引得天下群情激愤。永兴二年 (305) 七月,司马越召集将士起兵勤王,他向在崤山 (位于今河南西部,洛阳与长安之间) 以东的各征 、镇 、州、郡发布檄文,檄文上说:“让我们同心协力,集结正义之师,奉迎天子返回洛阳!”
徐州都督东平王司马楙看到檄文后惶恐不安,长史王脩劝他:“东海王在皇族中颇有声望,如今他起师勤王,您应该审时度势,把徐州让给他,这样既保全了自己,也收获了好名声。”司马楙权衡利弊,照办了。司马越遂兼任徐州都督,司马楙则自称兖州刺史、车骑将军。
司马越为人谦和,年轻时就有美名,这时他的兄弟们又都是一方大员,影响力很大,于是范阳王司马虓和王浚等人共同推举他为勤王军的盟主。不断有人前来投靠,司马越择优任用他们为各地刺史、太守。琅琊王司马睿就被任命为平东将军、都督徐州诸军事,在下邳驻防,司马睿又请来琅琊王氏子弟王导 担任司马,把军事事务全交给他处理。
司马越亲率三万精兵向长安进发,到达萧县 (今安徽萧县西北) 后驻扎,司马虓则从许昌推进到荥阳 (今河南荥阳) 驻扎。豫州刺史刘乔也起兵响应司马越,出于政治、军事上的考虑,司马越任命刘乔为冀州刺史,让司马虓接任豫州刺史,这下刘乔不干了,他认为这不是御诏,于是出兵抵制。当时司马虓任用刘琨为司马,司马越任用刘藩为淮北护军、刘琨的哥哥刘舆为颍川 (今河南禹州) 太守,刘乔便给朝廷上书,罗列了刘舆兄弟的种种恶行,随后率兵攻打许昌。他还派长子刘祜率军阻挡司马越大军,导致司马越前进不得。
东平王司马楙在兖州任上横征暴敛,各郡县都不堪重负。范阳王司马虓派苟晞回兖州任刺史,调司马楙为都督青州诸军事,司马楙不接受,背叛了联军,与刘乔联合到了一起。
说回司马颙一边,他听说公师藩等起兵为司马颖打抱不平,怕公师藩的这把星星之火引发燎原之势,内心很是焦虑。为了安抚这些河北人士,司马颙奏请惠帝任命司马颖为镇东大将军、都督河北诸军事,配给一千士兵,又任卢志为魏郡太守,跟随司马颖镇守邺城,另派建武将军吕朗到洛阳驻守。
司马颙又请惠帝发布诏令,命东海王司马越等各位王爷回到自己的封国,司马越等人不予理睬。正在这时,豫州刺史刘乔那封关于抵抗司马越的奏章送到,司马颙感觉有了帮手,立即有了底气,撺掇惠帝下诏:“刘舆逼迫范阳王司马虓犯上作乱。现命镇南大将军刘弘、平南将军彭城王司马释、征东大将军刘准各率部队,与刘乔并肩作战。命张方为大都督,率领十万精兵,与吕朗在许昌会师,消灭刘舆兄弟。”从这份诏书中可以看出,司马颙还是想争取司马虓的。司马颙命司马颖率楼褒等人、石超率王阐等人共同防守黄河大桥,作为刘乔的援军。为了激励刘乔,司马颙还提拔他为镇东将军,假节。
镇南大将军刘弘不愿战火继续,便写信给刘乔和司马越,希望他们能辅佐皇室,平息战争,但二人均不接受。他又上书劝谏,希望司马颙能从中调停,司马颙不听。刘弘知道司马颙主要的依靠是张方,而张方天性残忍,不得人心,所以司马颙注定会失败,于是转而投靠了司马越。
刘乔的立场很坚定,他乘虚而入,带兵袭击许昌 (司马虓总部) ,将其一举攻克。刘琨带兵来救,但到达时城池已经陷落,他只得和兄长刘舆以及范阳王司马虓一起逃往河北,他的父母则被刘乔抓住了。
路上,刘琨游说冀州刺史温羡把职位让给司马虓,温羡是个聪明人,照做了。司马虓又派刘琨到幽州向王浚求援,王浚派精骑八百相助,袭击在黄河桥上防守的王阐,大获全胜,王阐被杀,司马虓和刘琨遂率众渡过黄河,在荥阳又杀死了石超等人。刘乔从考城 (今河南兰考县兰考镇) 率兵撤退。司马虓派刘琨和都护田徽攻打司马楙所在的廪丘 (今山东郓城县) ,司马楙抵挡不住,逃回自己的封国。刘琨等继续率兵向东挺进,迎接东海王司马越,又在谯县 (今安徽亳州) 攻打刘祜,刘祜兵败被杀。刘乔的部队四散奔逃,他本人逃到了平氏县 (今河南桐柏县平氏镇) 。
司马越率部队推进到阳武 (今河南原阳县东南) 驻扎,王浚派他的部将祁弘带领精锐的鲜卑、乌桓骑兵充当司马越的前锋,司马越的军队声势更胜。
当初,皇太弟中庶子缪播受到司空司马越的宠信,但其堂弟右卫率缪胤是太宰司马颙已经去世的前妻的弟弟——有时候人际关系就是这么复杂。司马越起兵勤王的时候,派缪播、缪胤到长安做司马颙的工作,让他保护惠帝东归洛阳,并约定以陕地 (今河南三门峡) 为界和司马颙共治天下。司马颙一直以来对缪播兄弟都很信任,也看到司马越的队伍阵容强大,感到自己没有必胜把握,在仔细衡量下,就想听从劝告,划界而治。
张方可不愿这么干,他知道自己罪行深重,天下人不会饶过他,于是对司马颙道:“如今我们占据险要地势,凭着咱们的实力能够挟天子以令天下,怎么能拱手就让别人得势?”张方一直是司马颙的主心骨,听张方这么说,司马颙一时也没有了主意,只能暂时打消了平分天下的念头。等到刘乔兵败的消息传来,司马颙非常焦虑,罢兵与司马越和解的念头更坚定了一些,但又担心张方不同意,因此迟疑不决。张方知道是缪播兄弟在劝说司马颙和解,恨得咬牙切齿,盘算着想暗害他们。
张方初来长安的时候穷困潦倒,衣不蔽体,食不果腹,长安城里的大富翁郅辅是个善人,经常接济张方,张方打心底里很感激他,把他视作恩人。穷则思变,人想有变化的时候各种潜能就容易爆发,张方就是这样,他的才干和勇敢逐步得到司马颙的赏识和信任,渐渐成为司马颙的心腹。张方知恩图报,平步青云后特别推荐自己的恩人郅辅为帐下督。
司马颙的参军毕垣家里是河间 (今河北沧州) 的豪门大户,曾经受到过张方的侮辱,自尊心遭到极大伤害,加之他本人心眼又小,对张方一直怀恨在心,时刻准备报复。这次他嗅到了机会,便对司马颙说:“张方带兵在霸上驻扎挺长时间了,他这是听说山东的军队实力强大,犯怵了,所以才停滞不前。之前还有消息说他有投靠敌人的想法,您应该防患于未然!要想了解张方的计划,盘问一下他的亲信郅辅就知道了。”缪播兄弟也不失时机地劝司马颙:“司马越等人恨的是张方,您杀了张方向天下谢罪,司马越等自会退兵。”
永兴三年 (306) 正月,司马颙派人召见郅辅,想向他了解张方的具体打算。郅辅来到王府,正要去晋见司马颙,毕垣迎上前拦住他道:“张方要谋反,大家都说你知道这事,王爷如果问你,你会怎么回答?”郅辅顿时大吃一惊,六神无主,造反这可是要灭九族的事情啊!他赶紧问:“我确实不知道张方要谋反,这可怎么办?”毕垣一看把郅辅唬住了,故作关心地给他出主意:“王爷问话的时候,你只回答‘是,是’就行了,否则的话,你全家性命不保!”郅辅点头答应。
郅辅进入府内,司马颙直接问他道:“张方要谋反,你可知情?”郅辅慌忙回答道:“是。”司马颙一听,张方这小子果然怀有二心,应该尽早除掉,然后他又问道:“派你去除掉他,行吗?”郅辅又回答道:“是。”司马颙于是派郅辅去给张方送信,要他借机杀掉张方。
郅辅平时与张方来往密切,关系很铁,因此当他带刀进张方府内的时候守卫也没有多问。张方打开了司马颙给他的信,在灯下细看,郅辅瞅准机会,拔刀砍下了张方的头颅。得手之后,郅辅大摇大摆地出了张府去向司马颙禀告,司马颙悬着的心终于放下了——他还在后怕,如果郅辅不能得手,张方起兵造反,后果将不堪设想。司马颙奖励郅辅,任命他为安定太守。
司马颙把张方的人头送给司马越,司马越一看司马颙的臂膀已去,大喜,更是无所忌惮,直接拒绝了司马颙和解的请求。司马颙没有达到目的,又损失了一员大将,但他拿司马越无可奈何,只好把气全撒到了郅辅的头上,命人把刚刚升了职的郅辅拉出去斩首。