310年刘渊去世，刘聪杀新帝刘和自立为帝。同年，石勒经宛城、襄阳，掠夺江汉一带，隔年北返。当时关东又有蝗灾，洛阳缺粮，司马越率朝中重臣及诸将东讨石勒，弃怀帝于洛阳。311年晋怀帝与司马越的矛盾爆发，怀帝密诏苟晞讨伐司马越，随后司马越病逝，王衍率军归葬封国东海。当他东行至苦县（今河南鹿邑县）时，遭石勒袭击，晋军精锐受屠尽亡，众位大臣在投降后被杀尽。此时洛阳空虚，刘聪、王弥及石勒和兵攻破，处死太子、杀害官员百姓三万余人，掳走晋怀帝，史称「永嘉之祸」。313年晋怀帝被杀，晋愍帝于长安继立帝位，刘聪派刘曜持续攻打。