武德三年(620)十一月,唐军步步紧逼,兵临洛阳城下。王世充情急之下,派遣使者赶赴乐寿(今河北献县)向窦建德求援,窦建德也派使者到洛阳,答应出兵相助。可就在使者返程之际,郑国辖下的许州、亳州等十一州同时降唐;就连郑国南方重镇随州总管徐毅,见王世充大势已去,也献州归降,这标志着王世充的南方屏障彻底瓦解。王世充眼见颓势如山倒,越发惶恐不安,当即派侄子代王王琬、长孙安世再次赶赴河北,恳请窦建德火速发兵支援。
武德四年(621)正月,王世充麾下的梁州(今河南兰考附近)总管程嘉会,也率领部众归降唐军。雪上加霜的是,江淮的杜伏威特意派遣将领陈正通、徐绍宗率领两千精兵,前来与秦王李世民会合,一同攻打王世充。王世充盼星星盼月亮,没等来窦建德的援军,反倒见唐军添了盟友,简直欲哭无泪。
秦王李世民亲自挑选一千多名精锐骑兵,让他们全都身披黑衣黑甲,分为左右两队,由秦叔宝、程知节、尉迟敬德、翟长孙分别统领。每逢作战,李世民也身披黑甲,亲自率领这支骑兵冲锋陷阵,所到之处无不摧枯拉朽,郑军将士对这支黑甲军畏惧不已。
一日,行台仆射屈突通、赞皇公窦轨率领军队巡视营寨,突然与王世充的侦察兵遭遇,交战失利。李世民得知消息后,亲自率领黑甲军前去救援,郑军大败而逃,王世充麾下的骑将葛彦璋被俘,六千多名郑军被斩杀,王世充仅以身免,狼狈逃回洛阳。
王世充的太子王玄应率领几千士兵,从虎牢押运粮草前往洛阳。李世民派遣将军李君羡在半路截击,大败王玄应,王玄应也是只身逃脱。经此两番惊吓,王世充父子越发忧心忡忡。
李世民派宇文士及赶赴太原,奏请李渊批准进军包围东都洛阳。李渊对宇文士及嘱咐道:“回去告诉秦王,此次攻打洛阳,只为平定战乱、安定天下。攻克城池之后,皇帝的车驾、礼仪器物、图籍文书、兵器铠甲,凡非私人财物者,全部妥善保管;其余的子女玉帛,尽数分赏给将士们。”
于是,李世民率军转移到青城宫扎营。营垒还未修筑完毕,王世充便率领两万士兵从方诸门杀出,依托旧马坊的墙垣壕沟,紧靠谷水列阵抵御唐军,唐军众将见状,一时都有些紧张。
李世民率领精锐骑兵登上北邙山的魏宣武陵,观察敌军阵势后,对身边人说道:“敌军已是穷途末路,此番倾巢而出,不过是妄图侥幸取胜。今日一战,必将其击溃,此后他们再也不敢出城应战了。”
说罢,李世民命令屈突通率领五千步兵渡过洛河攻击郑军,还特意告诫他:“两军交战之时,务必点燃狼烟作为信号。”待到狼烟升起,李世民率领骑兵向南冲锋,身先士卒,与屈突通的步兵合力夹击。
李世民想要试探王世充军阵的虚实,便率领几十名精锐骑兵冲入敌阵,径直冲杀到阵后,所到之处郑军纷纷溃散,死伤惨重。不料,李世民的冲锋路线被一道长堤阻断,他与麾下骑兵失散,身边只剩将军丘行恭一人。
王世充的几名骑兵趁机追了上来,李世民的坐骑被流箭射中,当场倒地。丘行恭见状,调转马头回身射箭,箭无虚发,追兵不敢上前。随后,丘行恭下马将自己的坐骑让给李世民,自己则手持长刀在马前步行护卫,一边大喊着冲杀,一边斩杀数名追兵,最终冲破敌阵,护送李世民回到大军之中。
王世充也率领部众拼死抵抗,他的军队数次被打散,又数次重新集结,从辰时一直鏖战到午时,郑军才渐渐支撑不住,开始后撤。李世民率军乘胜追击,一直追到洛阳城下,俘获斩杀七千多郑军,随即下令将洛阳城团团包围。
骠骑将军段志玄与郑军奋力拼杀,深入敌阵后,坐骑不慎绊倒,段志玄被郑军生擒。两名郑军骑兵挟持着他的发髻,押着他准备渡过洛河。段志玄突然纵身发力,奋力挣扎,竟将两名骑兵都掀翻在地。他趁机跳上一匹战马,策马疾驰逃回唐军阵营,数百名郑军追兵竟无人敢上前阻拦。
此前,骠骑将军王怀文担任唐军侦察兵时,不幸被王世充俘获。王世充想要收服他为己所用,便将他留在身边,好生款待。可王世充万万没想到,王怀文根本没有真心归降。就在王世充从右掖门出兵,在洛水边布阵之时,王怀文突然抽出长矛,猛地刺向王世充。万幸的是,王世充在衣服里面穿了一层铠甲,长矛刺中后当即折断,未能伤及要害。王世充的随从们都被这突如其来的变故惊呆了,一时不知所措。王怀文趁机策马奔向唐军阵营,可惜跑到写口时,还是被王世充的追兵赶上,最终惨遭杀害。李渊得知王怀文的死讯后,下诏追赠他为上柱国、朔州刺史。
王怀文刺杀未遂一事,反倒被王世充当成了鼓舞士气的契机。他杀了王怀文返回军营后,当众解开贴身的铠甲,袒露胸膛对群臣说道:“王怀文持长矛刺我,最终却没能伤我分毫,这难道不是上天在庇佑我吗?”此前,御史大夫郑颋本就不愿在王世充手下为官,常常以生病为借口,不参与政务。此时见王世充如此说辞,却主动上前说道:“臣听说佛祖有金刚不坏之身,陛下您正是如此啊!臣实在幸运,能够生逢圣主在位的时代,甘愿舍弃官职、削发为僧,诵经礼佛,为陛下的神明英武祈福。”细究起来,郑颋这番“弃官为僧”的话,或许是看穿了王世充败局已定,想要借此脱身自保的手段。
可王世充却对郑颋“格外器重”,他对郑颋说道:“你是国家重臣,素来声望卓著,一旦出家为僧,恐怕会引起百姓的猜疑议论。等战乱平定之后,我再成全你的心意。”郑颋再三请求,王世充始终不肯答应。郑颋退朝回到家中,对妻子说道:“我年少入仕,一心想要博取功名、留名青史,却不幸遭遇乱世,沦落至此。如今身处猜忌成性的朝廷,危在旦夕,我才智浅薄,无力保全自身。人生终有一死,早晚又有何妨?姑且按自己的心意行事,即便身死,也了无遗憾。”于是,郑颋不顾王世充的禁令,毅然削去头发,穿上了僧袍。王世充听说后,勃然大怒,说道:“他是认定我必败无疑,想要借此侥幸逃脱吗?今日若不杀他,何以震慑众人!”随即下令将郑颋押到街市斩首。刑场之上,郑颋谈笑自若,神色从容,围观的百姓无不赞叹他的气节。
王世充的侄子、宋王王泰面对唐军的凌厉攻势,无力抵抗,索性放弃河阳仓皇逃走。他的部将赵敻等人见状,献出河阳城向唐军投降。王世充麾下的大将单雄信、裴孝达率军与唐军总管王君廓在洛口相持。李世民率领五千步骑兵前去支援,大军行至轘辕(今河南偃师东南),单雄信等人见唐军援兵到来,不战而逃,王君廓当即率军追击,大败郑军。王世充的怀州(今河南沁阳)刺史陆善宗见状,也献城投降,李世民对洛阳的包围就此更加稳固。
秦王李世民率军包围了洛阳宫城,城中的防守极为严密:巨型投石机可以将重达五十斤的飞石抛射到二百步开外;八弓弩发射的弩箭粗如车辐,箭头大如巨斧,射程可达五百步。李世民指挥唐军从四面猛攻宫城,昼夜不停,可一连攻打十多天,始终未能攻克。城中先后有十三批人想要越城投降,可惜都没能成功,最终全部惨死。
面对久攻不克的洛阳宫城,唐军将士也渐渐疲惫不堪,萌生了撤军的念头。总管刘弘基等人向李世民请求撤军回朝,李世民坚定地说道:“如今我大军前来,志在平定中原,当一鼓作气,永绝后患。东方各州郡都已望风归降,唯有洛阳一座孤城负隅顽抗,其势已不能长久,胜利近在眼前,岂能半途而废!”随即,李世民下令军中:“洛阳不破,大军绝不还朝,敢言班师者,立斩不赦!”众将见状,再也不敢提及撤军之事。
其实,李渊听说洛阳前线战事胶着,也曾秘密下诏让李世民撤军。李世民当即上奏,称洛阳必定可以攻克,又派参谋军事封德彝入朝,当面向李渊分析战局。封德彝对李渊说道:“王世充虽然占据不少地盘,但大多是迫于威势归附,真正能听从他号令的,只有洛阳一座孤城。如今他已是智穷力竭,攻克洛阳不过是早晚之事。若此时撤军,贼寇必将重整旗鼓,联合各路势力,届时再想剿灭,就难上加难了。”李渊听后,这才坚定了攻克洛阳的决心。
唐军兵围洛阳,王世充外失州县、内无援兵,困守孤城已是穷途末路;李世民以黑甲军摧锋陷阵,围点打援,掌控战场主动权。郑军虽负隅顽抗,却难改众叛亲离的颓势,窦建德援军未至,王世充覆灭的命运已然注定,而李世民一战擒双王的传奇,也自此拉开序幕。