据守长安的南阳王司马模派牙门将赵染防守蒲坂(今山西永济市),赵染想做冯翊(今陕西大荔县)太守,但司马模没有同意。赵染也有个性,一怒之下干脆率领部下投降了汉赵。刘聪大喜,任命赵染为平西将军。
永嘉五年(311)八月,刘聪派熟悉长安情况的赵染与安西将军刘雅带领两万精骑进攻司马模,太子刘粲、始安王刘曜率领大队人马作为后援。
赵染攻克潼关后**,抵达长安城下,南阳王司马模派部将淳于定率军抵挡,但被赵染打败。正在这个关键时候,驻守凉州的晋朝猛将北宫纯突然投降了汉赵。对于这件事,史书上没有交代具体原因,但不论怎样,晋朝都失去了一员大将。
这时候函谷关以西地区的饥荒已经十分严重,尸横遍野,满目疮痍,老百姓携家带口投亲靠友而去,留下来的不到百分之二,长安城的仓库也已搬空,城中士卒四散逃亡。军咨祭酒韦辅对司马模说:“现在敌我力量悬殊,事态紧急,早点投降也许可以保全性命。”司马模一看也没有别的办法,于是投降了自己曾经的部下赵染。赵染一看平日不可一世的司马模竟然也有今天,心中大感解恨,让司马模跪在地上,自己坐着捋起袖子数落他,把他狠狠地羞辱了一通,然后把司马模送到了汉赵河内王刘粲那里。九月,刘粲斩司马模,又把司马模的漂亮妃子刘氏送给胡人张本为妻。
司马模死后,他曾经任命的冯翊太守索綝(chēn)跟麴(qū)允、梁肃等人投奔了安定(今甘肃泾川县北)太守贾疋。他们几个人在一起谋划要夺取长安,复兴晋朝,于是共同推举贾疋为平西将军,让他率领五万大军进攻长安。
雍州刺史麴特、新平太守竺恢和扶风太守梁综听说贾疋起兵,一起率领十万军队与他会合。索綝等与汉赵大将刘雅打了大小百余战,终于击败刘雅。贾疋则与刘曜大战,刘曜身中流箭,带汉赵军队大败而逃,贾疋趁机杀死了汉赵的凉州刺史彭**仲。麴特等人率军和刘粲交战,刘粲大败,逃回平阳。晋朝各路军队进展顺利,贾疋顿时声威大振,关西的汉人、氐人、羌人等纷纷前来投靠或发兵配合。
豫州刺史阎鼎有让秦王司马邺定都长安的想法,于是护送司马邺入关,贾疋派兵前去迎接保护。贾疋已经包围长安好几个月了,刘曜在他手上接连吃败仗,实在无法支撑下去,便强制带上男女老幼八万多人,往汉赵都城平阳逃去(后刘聪贬刘曜为龙骧大将军),秦王司马邺得以顺利从雍州进入长安。
永嘉六年(312)九月三日,贾疋等尊奉秦王司马邺为皇太子,在长安建立行台,祭拜昊天和五色帝,设立宗庙。司马邺任命任阎鼎为太子詹事,总领文武百官;贾疋为征西大将军、秦州刺史;梁综为京兆尹;司马模之子司马保为大司马,承袭父爵;光禄大夫荀组兼任司隶校尉、豫州刺史,和司空荀藩共同保卫开封。
被贾疋杀死的汉赵凉州刺史彭**仲的儿子彭天护率领众多人马,进攻征西大将军贾疋。两军对垒,在夜色的掩护下,彭天护假装不敌,引诱贾疋追赶。彭天护提前在山中设下埋伏,贾疋追着追着就进了埋伏圈,坠入山涧,被彭天护的人马活捉后杀害。汉赵让彭天护接替父职,为凉州刺史。
贾疋死后,阎鼎总领朝政,引起了梁综的嫉妒,他私下里谋划要杀害阎鼎,自己专权,但消息走漏,阎鼎先下手为强杀死了梁综。冯翊太守梁纬和北地太守梁肃都是梁综的兄弟,又都与抚夷护军索綝是姻亲,他们联合了始平太守麴允一起,向司马邺上奏,说阎鼎擅杀大臣,目无君主,请求诛杀阎鼎以谢天下。但不等司马邺答复,他们已经向阎鼎发起了进攻,阎鼎不敌,逃奔向雍州,后被氐人杀死,首级被送到长安。
永嘉七年(313)正月一日,刘聪在光极殿大宴群臣,他命晋怀帝司马炽穿着平民服装给自己和众臣倒酒。看到昔日的皇帝竟然被如此侮辱,曾在晋朝为官的光禄大夫庾珉、王隽等人异常悲愤,痛哭流涕,刘聪顿时觉得大为扫兴。宴后,他命人告发庾珉等人和晋的并州刺史刘琨里应外合,图谋平阳。二月一日,刘聪杀死庾珉、王隽等原晋朝的大臣十多人,晋怀帝司马炽也同时遇害。
四月一日,晋怀帝被害的消息传到长安,司马邺举行了隆重的哀悼仪式,向全国发布讣告。四月二十七日,司马邺(年十四)在长安继位登基,改年号为“建兴”,史称晋愍帝。他任命卫将军梁芬为司徒;雍州刺史麴允为尚书左仆射、录尚书事;索綝为前将军、尚书右仆射、京兆尹,兼领吏部,加平东将军,进号征东将军。
这时的长安几乎成了一座空城,住户不满百家,城中杂草丛生,找遍全城竟然只找到了四辆牛车。文武百官没有正式官服,也没有官印,只好把官名刻在上朝用的手板上。
不久司马邺又任命索綝为卫将军,兼太尉,国家大事全权委托他处理。