刘曜的大军越打越顺利,长安也肉眼可见的危险。汉中各地的太守坐不住了,焦嵩、竺恢和宋哲都带兵去支援长安,京兆、冯翊、弘农和上洛四个郡的军队也来到霸上驻扎,可面对强大的汉军,他们都留在原地,不敢主动出击。
长安城外出现了一幅很怪的画面。援军并不是没有,营寨也一个接着一个,可城里的人天天盼着城外开战,始终听不到救兵冲锋的动静。刘曜面对的,表面上是一座还有军队、有朝廷的都城,实际上却是一个已经指挥不动各路人马的西晋政权。
公元313年,晋愍帝在长安即位时,西晋的根基就已经十分薄弱。洛阳早已失守,关中连年兵乱,长安城里人口稀少,宫室和城墙多有损坏。朝廷缺少车马、仪仗和军械,政令能真正传到的地方也很有限。皇帝虽然坐在长安,地方将领却大多先顾自己的地盘。
到了公元316年,刘曜再次向关中推进。他没有一上来就死磕长安,而是先攻外围。七月,北地郡告急,麹允带着三万步骑前去救援,结果军队未能稳住阵脚,很快溃散。北地失守后,刘曜一路进到泾阳,渭北不少城池也跟着崩溃,长安北面的屏障就这样被撕开了。
八月,刘曜逼近京城,长安与外界的通道逐渐被切断。焦嵩、竺恢、宋哲等人带兵赶来,华辑又统领京兆、冯翊、弘农、上洛四郡兵马驻扎霸上。光看人数和旗号,似乎还有一战之力,可这些部队互不统属,谁都不愿先去碰刘曜的主力。
他们不是完全不想救长安,而是不敢拿自己的全部家底去赌。某一路先出击,一旦被击败,自己的郡县就可能失去保护;几路人马若要一同作战,又需要一个大家都服从的统帅。偏偏此时的长安朝廷既缺粮,也缺威望,能够发出命令,却很难保证命令落地。
真正让人惋惜的是,战场上并非没有出现过机会。坐镇陇右的司马保派胡崧率军东进,胡崧在灵台迎战刘曜,还打赢了一仗。刘曜的攻势第一次受挫,城内外的晋军如果趁机靠拢,长安未必马上就能解围,但至少可以争取喘息时间。
胡崧却在胜利之后停了下来。他担心长安一旦获救,朝廷声势恢复,麹允和索綝的地位会更高,司马保这一派反而难以掌控局面。于是,他带着城西诸郡军队驻在渭北,没有继续追击,后来又退回槐里。对长安而言,这不是少来了一支援军,而是最后一个可以主动改变战局的窗口被关上了。
刘曜很快看懂了局势。他发现晋军并非打不动,而是彼此提防,谁也不愿真正拼命。于是,汉军重新压向长安,集中兵力攻破外城。麹允、索綝护着晋愍帝退入小城,内城和外城之间失去联系,有限的粮食、兵员和消息都被截断。
城中最先崩溃的不是城墙,而是粮食供应。米价涨到一斗值黄金二两,后来即使有钱也买不到粮。饥饿越来越严重,城中出现人相食的惨状,百姓死去大半,守军不断逃亡。到最后,仍肯留下死守的,主要是约一千名凉州义兵。
朝廷的粮仓里只剩下几十块麹饼。麹允把饼捣碎,熬成稀粥供晋愍帝充饥,后来连这些东西也吃完了。此时继续守城,已经不再是等待援军,而是在等所有人一起饿死。城外那些打着救援旗号的军队依旧没有形成行动,城内也看不到新的粮道。
建兴四年十一月,晋愍帝决定出降。他对麹允表示,自己可以为社稷而死,但不能眼看将士和百姓继续遭受饥饿,希望用投降换取城中人的性命。随后,侍中宗敞奉命出城送交降书。到了这个时候,长安的结局已经没有多少回旋余地。
索綝却还想给自己寻找退路。他扣住宗敞,另派儿子去见刘曜,声称城内的粮食足够再守一年,只要给他高官厚爵,他就愿意献城。刘曜没有接受这场交易,反而杀了索綝的儿子。宗敞后来赶到汉军营中,正式递交了晋愍帝的降表。
第二天,晋愍帝乘着羊车从东门出城。他袒露肩膀,口中衔璧,车后载着棺木,表示把生死交给胜利者处置。群臣一路哭着攀住车子,晋愍帝也流泪不止。御史中丞吉朗不愿随君受降,又自责无力救国,最终选择自杀。
刘曜接受投降后,把晋愍帝和随行官员送往汉国都城平阳。刘聪封晋愍帝为光禄大夫、怀安侯,刘曜则因攻下长安,被封为秦王,并掌管陕西一带军务。麹允因伏地痛哭触怒刘聪,被囚后自杀;索綝则因临城求官被处死,其他一些西晋官员也没能保住性命。
公元316年西晋的结束,看上去是刘曜攻破了一座城,背后却是整个救援体系已经失灵。城外有兵,却没有统一指挥;前线打过胜仗,却因为派系顾虑主动撤退;地方将领都说要勤王,真正需要承担风险时又选择观望。长安不是在最后一天突然倒下的,它早在各路援军停在原地时,就已经失去了继续坚持的条件。
