建武将军吕朗在荥阳(今河南荥阳市)驻守,刘琨拿张方的人头展示给他看,吕朗顿时泄气,乖乖地出城投降了。司马越派祁弘、宋胄、司马纂带领鲜卑精骑西行迎接惠帝圣驾,命周馥在渑池(今河南渑池县)驻扎。永兴三年(306)四月十三日,司马越本人率大军到温县扎营。
司马颙派彭随、刁默率军在关东湖县(今河南灵宝市)构筑堡垒抵挡祁弘等人。不想他们战斗力很强,五月七日大败刁默,之后继续向西挺进关内,又在灞河打败司马颙的部将马瞻和郭伟。
此时的司马颙精锐尽失,已无力抵挡,只能单枪匹马逃入太白山(秦岭山脉最高峰,跨太白县、眉县、周至县三县)。祁弘等人率军进入长安城,纵容部属进城后大肆抢掠,野蛮地杀死了两万多人,大臣们四散奔逃,跑得快的逃到了秦岭群山中,没有吃的就捡拾柞树果子果腹。
五月十四日,祁弘等人伺候着晋惠帝司马衷登上牛车,公卿大臣步行,随皇帝东归洛阳,梁柳为镇西将军,留下镇守关中。六月一日,惠帝到了洛阳,他登上昔日宫殿,坐上宝座,觉得恍如隔世,不禁感伤落泪。之后他前往拜谒太庙,恢复了羊献容的皇后身份,大赦天下,改年号为“光熙”。