桓羯朱两个胡族势力联手讨伐司马颖，司马颖则派王斌和石超抵抗。王浚和司马腾军先后击王斌和石超，并且逼近邺城，令邺城民众大惊，司马颖只好带着晋惠帝仓皇回洛阳，司马腾后获升任安北将军。同时，司马腾在拓跋猗㐌的支持下，于304年和305年两度击败匈奴的刘渊。光熙元年（306年）司马越等大军击败司马颙后，迎接被司马颙劫持到长安的晋惠帝回洛。九月司马腾获进封东燕王。永嘉元年（307年）改封新蔡王，升任车骑将军、都督邺城守诸军事，镇邺城。同时司马颖旧将公师藩和汲桑在北方以为司马颖归葬为名叛乱，并与张泓旧将李丰一同攻向