永兴二年(305),自皇太弟司马颖被废以后,河北的人都念其善,其中司马颖故将阳平人公师籓及其部下汲桑、石勒等人为迎立失势的司马颖,聚兵数万,在清河鄃县起兵。七月,公师籓等聚众攻陷郡县,杀死阳平太守李志、汲郡太守张延等,公师籓、楼权、郝昌等转攻邺,镇邺守将司马模的左右密谋将为内应,广平太守丁绍率众救司马模,范阳王司马虓又遣兖州刺史苟晞驰援司马模,公师籓等散走(一说司马模遣将军赵骧击破公师藩)。同月,东海王司马越为盟主的关东诸侯,打着迎帝还都的口号,传檄共讨司马颙。九月壬子,司马颙见到河北有人支持司马颖,便表奏晋惠帝让他返回邺城镇守、抚慰叛亡,升司马颖为镇军大将军、都督河北的军事,又以卢志为魏郡太守,加左将军,随司马颖一起返邺,给兵千人。十二月,吕朗等东屯荥阳,成都王司马颖率部到达洛阳,张方、刘弘等并桉兵不动,不接受司马颖的指挥。
司马颖前脚到达洛阳,司马越讨伐司马颙的军队后脚就来到,接连击败司马颙属下刘乔、楼褒、王阐等军,向长安进发。司马颖则逃到关中。五月壬辰,司马越的部将祁弘等与刁默交战,默大败,司马越军随后攻陷长安,司马颙、司马颍避入南山。祁弘等所部鲜卑大掠长安,杀二万余人,司马越等人带惠帝退回洛阳,司马颖则从华阴经武关出新野。?
司马颖来到新野不久,荆州刺史、新城元公刘弘谢世,州司马郭劢趁机发难,准备迎立成都王司马颖为新主。治中郭舒奉刘弘之子刘璠讨伐郭劢,将其斩杀。随后有诏令南中郎将刘陶捉拿司马颖,司马颖因而抛弃母亲和妻子,与两个儿子司马普及司马廓坐马车渡黄河回朝歌,收合了以前麾下将士数百人,准备前往投奔支持他的故将公师藩。九月,司马颖等人于途中被顿丘太守冯嵩所抓获,并送到邺城交范阳王司马虓处置,司马虓只将其父子囚禁,但是并不忍心将司马颖等加害。一个多月后,司空、范阳王司马虓暴毙,司马虓的长史刘舆想到司马颖在邺城素有威望,担忧留司马颖在邺