李世民领五万大军攻打慈涧。王世充一看李世民兵力占优,自己硬拼无异于以卵击石,所以就主动放弃了慈涧,退回洛阳。
李世民收复洛阳周围各州县后,又部署兵力围攻洛阳。两军对垒,一场大战一触即发。
唐武德三年(620)八月,李世民和王世充在洛阳西宛青城宫隔水对话。王世充向李世民喊道:“你们李氏父子占据关中,我统领兵马占据河南。我们两军井水不犯河水,相安无事不是很好吗?何必死死相逼,要拼个两败俱伤、你死我亡呢?”
李世民让宇文士及前去回话道:“我们是奉诏前来收复洛阳的,军令在身,不得违抗,我们不能与你讲和,只能一决雌雄。”这种说法可谓堂堂正正。俗话说,“成者为王败者寇”,自己这方是“奉诏”行事,显然以“王军”自居,那对方就是“寇”了。
八月和九月这两个月中,李世民手下的大将们继续攻打洛阳周围的城镇,捷报频频传来。黄君汉拿下了回洛城,攻克了二十多个据点;刘德威攻入怀城外围;史万宝进军甘棠宫;王君廓拿下了管城周围的大片土地;河南的郡县相继向李世民投降,王世充力量日益单薄。到武德四年(621)二月,唐军已经占据管城、阳城(今河南登封东南)、武牢、河阳、怀州、洛口,洛阳的外围据点多数已经纳入唐军囊中。于是,李世民集中兵力,在青城宫外屯集,准备大举进攻。
洛阳之战是李世民与王世充之间的一场博弈。
王世充是一个曹操式的人物,他以洛阳自据,可以说是唯一能与大唐王朝相抗衡的势力了。虽然王世充的政治才能不怎么样,可是,在军事方面他绝对是一个人物。
刚刚到达洛阳城的李世民就急不可耐地强攻了,可是,这次李世民遭遇到了他生平最险恶的一场战斗。唐军步兵、骑兵共五万,已兵临洛阳城下,郑军出城迎击,双方在位于洛阳城西北面的青城宫展开了一场大决战。王世充采用了他消灭李密的突袭战术,待唐军刚刚抵达青城宫、立足未稳时,就发起猛攻。不过这一次他的对手显然比李密高明许多,李世民尚未扎营,就已经先把防线布置好了。王世充突袭未果,双方展开正面交锋。李世民为了打破僵持不下的局面,亲率数十骑兵从侧翼冲入敌阵,希望能打乱敌人阵脚。这种战术曾在对西北薛仁杲时发挥过奇效。不过王世充的军事才能非薛仁杲可比,况且他自己就用这招来对付过李密,岂能吃这个亏?李世民奇袭不成,反而使自己身陷险境,随自己征战多年的爱马“飒露紫”被流箭射死。敌军见秦王落马,一哄而上,准备生擒。他的副将丘行恭赶紧拍马来救,射死离秦王最近的几人,把坐骑让给秦王,自己持长刀步战,好不容易才冲出重围。这样,双方的计谋都未能得逞,只能硬碰硬。现在比拼的不是战术,而是在比谁平时治军得力,在持续的混战中阵形能否保持良好,兵士能否不惜性命死战。
唐军四次把郑军冲散,但王世充硬是率领众将四次把队伍迅速整合,迎头再战。李世民也不得不佩服这个对手,他深知王世充手下的军队有一半是收降李密的农民起义军,整合军队的时间不到一年,竟能经得住自己久经战阵的正规军的反复冲杀,实在不易。战斗从早晨一直持续到下午,郑军才开始渐现疲态,无法抵抗唐军的冲击。王世充只得下令退守洛阳,李世民本待敌军退却,立即像他在西北扫荡薛仁杲一样,趁势攻入洛阳。但郑军虽然败退,阵脚却不乱,无懈可击。洛阳为隋朝东都,城墙坚固,防御严密,李世民强攻不下,于是将洛阳团团围住,再派兵清扫了洛阳外围据点。
这是一次长达八个月的围城战。
围城八个月,洛阳城中三万户人家已经降至三千户——真正的十室九空。王世充仍然在顽强地抵抗着,这大大出乎李世民的意料,也更加膺服王世充之能。城内虽已饿殍遍地,却没有人出城投降,没有出现百姓暴动,这样的人才不论治国治军,都是一流的。唐军现在也疲惫不堪,人心厌战,不断发生军士甚至大将逃亡之事,以李世民的统帅才能竟然发生这样的事情,可见情况之严重。李世民不得已颁下强硬军令:“敢言班师者斩!”以稳定军心。
李世民想:洛阳周边的地方我们都已经拿下了,只有洛阳这个地方久攻不破。但是,洛阳定然不会支持很久,我们的成功近在咫尺,为什么要撤军呢?
于是他下令军中:“洛阳城一日不破,我军就一日不退。如果军中以后再有扬言撤军、扰乱军心者,一律处斩。”军令下了以后,李世民部队中要求撤军的情绪逐渐平定下来。
李世民日夜攻城,花了十几天的时间,发起了大大小小数百次进攻,洛阳城仍然没有被攻克。唐军的将士们由于连连征战都疲惫不堪,所以又有人请求李世民暂时停止攻城,班师回朝。李世民不同意,他说:“我们既然带了大军来攻城,就要一鼓作气,一举拿下。”
洛阳城终于在长时间地被包围后,出现了粮食危机。城中极度缺乏粮食,粮食的价钱也水涨船高。一匹绢只能换三升粟米,十匹布只能换一升盐。老百姓没有粮食吃,把城中的草根、树叶、树皮都吃完了。后来,竟然把泥土过滤,和一点粮食渣拌在一块做饼吃。一时间,洛阳城内满目疮痍,道路两旁全是饿死的、病死的老百姓的尸体,多得数不胜数。洛阳城内原本有居民三万余户,这时候也只有三千户了。这时的情况对李世民极为有利,洛阳城内已经处于水深火热之中,拿下洛阳指日可待。