永嘉三年(309)春季,有人在汾水得到一块玉玺,上面写有“有新保之”四个字,有人识得,说这是王莽的玉玺,捡到的人于是又在上面加上了“泉海光”三个字,呈献给刘渊(字元海)。刘渊大喜,认为是自己的福兆,在境内大赦,改年号为“河瑞”。

晋左积弩将军朱诞得罪了权贵,前来投奔汉赵,他向刘渊游说,说洛阳城中混乱不堪,主弱臣强,太傅司马越不得人心,军民不服,应该抓住时机,一举攻下洛阳。刘渊一听大悦,决心进攻洛阳。他命朱诞任前锋都督,让灭晋大将军刘景任大都督,率兵首先进攻重镇黎阳(今河南浚县)。汉军顺利攻克黎阳,又在延津打败了晋朝的车骑将军王堪。刘景为人残忍,攻破城池后,他命令士兵把俘虏的晋朝三万多名平民百姓全部赶入黄河淹死。

有探报把胜利的消息告诉了刘渊,刘渊摸着大胡子哈哈大笑,但又听说刘景淹死三万名百姓,顿时大怒:“刘景还有什么脸面再回来见我!上天岂能容忍这种残酷的行为?我想要消灭的,只是司马氏一族罢了,平民百姓又有什么罪?我要得天下,怎么能失掉民心!”于是把刘景贬为平虏将军。

到了夏季,天下大旱,长江、汉水、黄河、洛水等河流全都枯竭,甚至到了步行就可以穿过的地步。这个情况的干旱是非常严重的,也是不可思议的,可谓是千年难遇。天灾之下,晋朝军民人心更为涣散。

八月,刘渊命楚王刘聪为主帅,带兵进攻晋朝都城洛阳。晋平北将军曹武率军阻截,被刘聪打败。刘聪遂**,直达宜阳——宜阳距离洛阳不足百里。

这时候刘聪志得意满,觉得晋朝实力不过如此,自己一路过来势如破竹,拿下洛阳也是指日可待,顿时放松了戒备。有天夜里探子来报,说晋朝的弘农太守垣延来降,刘聪大喜:“识时务者为俊杰,快快迎接垣将军!”可垣延是诈降,他率领部队趁着夜色掩护,直入戒备松懈的刘聪大营,刘聪被打了个措手不及,只能狼狈逃窜,大败而回。

转眼到了十月,刘渊决心出动大军总攻洛阳。他命刘聪、王弥、刘曜、刘景率领五万精锐骑兵进犯洛阳,命呼延翼带领步兵作为后援。十月二十一日,刘聪等人率精骑到达宜阳。二十六日,刘聪进攻洛阳西城的西明门,凉州督护北宫纯率领一千多名敢死队队员趁夜出城袭击刘聪大营。北宫纯不愧为一员猛将,入敌营如入无人之境,力斩汉赵征虏将军呼延颢,刘聪部队再次溃败,撤退到洛水旁驻扎。

十一月一日,已经走到半路的汉赵后援呼延翼部队发生内乱,呼延翼被自己的部下杀死,部队群龙无首,逃回平阳。刘渊一看这仗也打不下去了,索性命令刘聪也撤回来。但刘聪不服输,上奏刘渊说:“晋朝军队其实很弱,胜败兵家常事,不能因为呼延翼、呼延颢被杀就撤兵,我请求留下来再攻洛阳。”刘渊想了想,还是批准了。

洛阳城内,太傅司马越亲自登上城楼巡视,命令加固城楼,鼓励士兵坚守杀敌,一时间军心大振。十一月十四日,刘聪到洛阳城外的嵩山祈祷,命平晋将军安阳王刘厉、冠军将军呼延朗留守大营。刘聪到嵩山祈祷的消息传到洛阳城内,在太傅参军孙询的劝说下,司马越乘虚偷袭了刘聪大营,杀死了呼延朗等人,刘厉怕刘聪回来降罪,干脆跳进洛水自杀了事。

王弥对刘聪说道:“现在我们军队受挫,洛阳城却仍坚固,我们的运粮车在中途又受到袭扰,粮食已经支持不了几天了。请您和刘曜将军先回京师筹措粮饷,我也回兖州、豫州地区待命,收集粮饷备用,不知您意下如何?”

刘聪之前是向刘渊请求坚决留下的,这次想回也没脸回,他向太史令宣于脩之求助,宣于脩之对刘渊说:“我观察天象,发现洛阳城上星光依然明亮,气势蒸腾,现在如果大军不撤回来,势必失败。”刘渊听他如此说,派黄门郎傅询召刘聪等人速速回撤。

永嘉三年(309)十一月二十日,刘聪、刘曜率败兵回到平阳。