刘聪连破晋军,直达洛阳,在西明门外扎下营垒。凉州刺史张轨派北宫纯等人进城支援洛阳。北宫纯赶到洛阳,和汉军相向而驻。半夜,北宫纯率兵偷袭汉营。刘聪令征虏将军呼延颢出营抗敌,呼延颢刚出营门就被北宫纯一刀砍死在地。汉兵见呼延颢被杀,惊慌失措。北宫纯趁机冲入营中,左劈右杀,杀死几十个汉兵。刘聪的军队招架不住,边战边逃,退到洛水沿岸的寨中。北宫纯担心有埋伏,只好收兵回营。
第二天,呼延翼的军营发生内乱。士兵不服呼延翼的命令,杀死了呼延翼,然后各自逃散。刘渊听到消息后,命令刘聪迅速回师。刘聪不肯退兵,于是刘渊让刘聪留攻。刘聪攻打宣阳门,刘曜攻上东门,王弥攻广阳门,刘景攻大夏门,四面同时进攻,声震山谷。太傅司马越绕城固守,又调北宫纯登城抵御。刘聪连攻几天,无法攻克,竟想去嵩山求神佛保佑,好快点攻取洛阳,当即命平晋将军刘厉和冠军将军呼延朗暂时带军,自己则策马朝嵩山奔去。司马越的参军孙询得知刘聪不在军营,告知司马越。司马越命孙询挑选三千精兵,由将军邱光、楼裒等人带领,朝汉军冲杀而去。呼延朗冒冒失失应战,一个疏忽就被邱光、楼裒结束了性命。刘厉急忙率兵来救时,已经来不及了。邱、楼二将带着士兵横冲直撞。刘厉只好带兵逃跑。刘聪在半路上得到消息,急忙赶回相助,邱、楼二人这才收兵进城。不料刘厉担心刘聪怪罪他,竟投河自尽了。
石勒自从攻破壶关后,在并州一带烧杀抢掠,收复了山北诸地,又和刘灵进攻常山。幽州都督王浚派部将祁弘与鲜卑部酋段务勿尘带领十多万骑兵讨伐石勒。石勒在飞龙山扎营,专等祁弘前来。祁弘带兵一路长驱直入,到了飞龙山,见石勒的军队已经扎稳,便心生一计,让段务勿尘带着本部人马登山而下,直逼石勒的大营,自己则率领部众和石勒直接交战。石勒令刘灵守营,二人分兵力战祁弘。两军都是劲旅,旗鼓相当,不分胜负。这时段务勿尘从石军身后压来,直攻大营,刘灵保不住营寨,只得逃出。石军见此情景,自然慌乱,石勒惊恐万分,向南奔去。刘灵稍迟一步,被祁弘从后面追上,用槊猛戳,当即毙命。汉军将士共死了一万多人。石勒垂头丧气地逃到黎阳,听说幽州兵已经回去,马上又兵分四路,攻陷三十余座城寨,再次进兵信都。东海司马王斌带兵抵御石勒,一战即亡。晋车骑将军王堪、豫州刺史裴宪奉诏联兵,合攻石勒。石勒带兵抵抗,取道黄牛垒,魏郡太守刘矩举城投降,石勒兵势得以增强。裴宪得知石勒的军队更加强大,偷偷南逃。王堪孤掌难鸣,只得退到仓垣。石勒又从石桥渡河,攻陷白马,杀死三千多人,然后东袭鄄城,杀死兖州刺史袁孚。紧接着,石勒又进攻仓垣,大胜王堪,然后攻克广宗、清河、平原、阳平诸县。捷书接连传到平阳,刘渊封石勒为镇东大将军兼汲郡公,又命刘聪、刘曜等带兵与石勒会合,一同进攻河内。河内太守裴整飞书求援,晋朝廷命宋抽为征虏将军,支援河内。路上,宋抽遇上石勒的军队,被石勒击败。裴整向汉投降,被汉廷封为尚书左丞。河内督将郭默收集残余部将,自命为坞主。刘琨上表,任命郭默为河内太守。
这一年已经是怀帝永嘉四年(310年)。刘渊患病,担心自己时日不多,便下了顾命 ,命梁王刘和为太子。刘渊召刘欢乐、刘洋、刘延年三人入宫,亲授遗命,让他们拥立太子,同心辅政。两天之后,刘渊便逝世了。
太子刘和继为汉主。大司马刘聪率领全军攻打都城,把刘锐、呼延攸、刘乘捉住,并将刘和杀死。刘聪进了光极殿,下令诛杀刘锐、呼延攸、刘乘三人,枭其首级,示众三天。群臣联名上疏,让刘聪继承皇位。
刘聪继位后,改元光兴。刘聪将国家要事依次处理,所有王公大臣仍任原职,众人都毫无异言。刘聪便趁国中无事,寻欢作乐。