第二天,王世充又率兵从洛阳城南右掖门出动,临洛水布阵。这时,原先被俘的唐骠骑将军王怀文趁世充收买人心而未加防范之际,突然用长矛行刺。由于王世充穿了两层重甲,长矛居然捅断了都没能伤到王世充,王怀文事败被杀。因为此事王世充还对手下得意洋洋地说:“这样都没事,难道不是天命嘛?”结果就有个御史大夫叫郑颋的拿这个凑趣,对他说:“臣听说佛祖有金刚不坏之身,陛下莫不是佛祖转世?臣太幸运了,降生在佛祖的时代。臣愿意弃官削发遁入沙门,精研佛法,以助您的神武。”其实这明着是夸王世充,目的却是不愿意同王世充再有瓜葛。王世充人精一般的人物,哪里听不出来,于是就答道:“你是国家大臣,一向声高望重,一旦进身佛门,必将惊世骇俗。等到战事过后,一定尊重您的志向。”“小样想撇清关系?没门,你不让我好过那大家就都别想好过了,要死一起死!”结果这郑颋也是个驴脾气,回去居然真的剃了发出家,被王世充当即斩首。从此,洛阳城内的人心更加离散。
二月二十二日,王世充的河阳(今河南孟州南)守将王泰弃城逃走,部将赵夐等举城降唐。此时洛阳缺粮,王世充命大将单雄信、裴孝达进军洛口,企图夺回洛口仓。唐将王君廓与之相持。李世民亲率步骑五千援助,单雄信等闻讯当即向洛阳紧急撤退,王君廓率众追击,郑军大败。
李世民回师洛阳城北之后开始指挥唐军向洛阳宫城发动进攻。此时洛阳在多年的攻防战的洗礼下已经变成了一个超级战斗堡垒,城中所造投石机可抛起五十斤重的石块达两百多步(合今三百余米)。用八张弓撑起的弩车所用的弩箭粗细如车辐一般,箭头更是像大斧一样,可射五百多步(合今七百五十米)。如此严密的防守,以当时的科技而言,无论战斗力多强的军队恐怕都非常难以攻克。因此唐军虽四面攻打,昼夜不息,但连攻十多天都没什么成果,反而伤亡与日俱增。唐军将士们由于作战时间过长,均产生了厌战心理,思乡情绪越来越重,于是将领们纷纷请求撤军。但这种情况对别的将领可能会放弃,但对李世民的字典中是没有放弃这一说的。因此下达了死命令,“洛阳如果不打下来,绝不班师,如果再有人议论撤军就立刻处死!”李世民也很谨慎,下达了命令之后立刻就派封德彝入长安汇报情况,取得了李渊的首肯,借最高指示强力压下了军中的不满情绪。
而王世充内部愈加不稳,在加强防务之后居然抓获了十三名想要翻越城墙逃跑的将领,眼看王世充势力就要分崩离析。
二月三十日镇守虎牢关的郑军部将沈悦派人向李世绩暗中投诚,并愿意作内应。李世绩当即派遣王君廓连夜东进,突袭虎牢关,在沈悦的策应之下虎牢关被顺利拿下,王世充的儿子荆王王行本等被俘。
到了三月中旬洛阳城内已经被封锁得一个苍蝇都飞不出去了,极度缺粮的洛阳城可以用人间地狱来形容。城内绢一匹只值粟三升,布一匹只直盐一升,其余服饰珍玩,贱如粪土。城内的青草树皮全都被老百姓吃光,最后只能用泥土充饥,结果全都患病而死。当年的三万户人家存活下来的连三千家都不到,连公卿大臣们饿死的都不在少数。王世充无计可施,只能焦急地等待窦建德的援兵。
在消灭掉唐朝的河北军团之后,窦建德对之后的战略走向突然陷入了一个迷茫的境地。当时河北、山东大部都已经在窦建德的掌握之中。对在自己手中的地盘,窦建德是颇为花了一番心思治理的,史书中号称境内治安已经达到了“夜不闭户”,包括李渊在内可以说在隋末没有一个反王能够做到这一点。如果在隋末的这场角逐中是窦建德胜出,相信他也会是一个好皇帝。但是窦建德虽然把内政做得很好,但是对外扩张的目标却开始混乱,颇有点“拔剑四顾心茫然”的感觉。此时为了博取窦建德的信任,假装投降的李世绩倒是给他出了一个好主意,建议去攻打南边的孟海公。如果此计划顺利实施,窦建德将拥有黄河两岸,下一步便可以沿河西进,攻略河南。可是志得意满的窦建德虽然很赞赏李世绩的意见但是却还惦记着几次攻打幽州失败的经历,一心要找回场子。因此又回军去进攻幽州,结果再次遭到了失败,白白浪费了几个月的宝贵时间。到了武德三年的年底才重拾李世绩的计划,南下进攻孟海公。从之后的局势发展来看,这几个月的延误对窦建德可以说是致命的。
当然不管窦建德的战略如何,他一直在紧密关注唐郑之间的战事,毕竟这对夏政权日后生存发展有极大的影响。当时窦建德有两个选择,第一个便是联唐攻郑,因为皇泰主的缘故王世充与窦建德的关系已经非常恶劣,双方甚至打过两场。在唐军攻打王世充的时候还派人邀请过窦建德,意图联合出兵消灭王世充。如果窦建德答应了,河南现成的大片土地就可以轻松到手。第二个便是联郑抗唐,当时唐朝具有关中、山西、陇右还有巴蜀,可以说已经具备了横扫天下的局面,如果窦建德不及早做出应对,那么下一个必然会轮到窦建德。一开始窦建德并没有答应唐朝的提议,仅仅是送回了之前唐军河北军团覆灭时被俘的同安公主,还在进行观望,希望两家能拼得两败俱伤。
可是没多久窦建德便发现王世充崩溃的速度比他想象得要快得多,眼睛一眨已经到了覆灭在即的边缘,因此不得不对王世充进行救援。此时窦建德还在进攻曹州(今山东定陶)的孟海公势力,因此腾不出手来,只能派其礼部侍郎李大师等向李世民表达窦建德希望两家罢兵的意思。当然窦建德知道唐军没那么容易罢休,之所以派遣使者一个是给唐军施加心理压力,另一个就是观察唐军的虚实,是否有可乘之机。窦建德的小算盘打得啪啪响,但李世民也不是白痴,直接把使者给扣住不让他们回去,让窦建德的打算全部泡汤。此时窦建德对唐郑战争的态度已经十分明显,因此李渊趁窦建德率部渡河进攻曹州的孟海公时,派将军刘世让率兵从河东出土门(即井径口,在今河北鹿泉西南),偷袭夏国都城治州(治今河北永年东南,窦建德于武德二年十月由乐寿迁都于此)企图拖延窦建德援助王世充的脚步。
武德四年(公元621年)三月,窦建德将孟海公击败,孟海公投降。十六日,窦建德派部将范愿镇守曹州(治今山东定陶西南),征发孟海公与徐圆朗等人的部众,与本部兵马组成十万大军,亲自援救洛阳。从周桥西进,援救洛阳。
二十一日,进抵酸枣(今河南延津东),接着,又相继攻克管州(治今河南郑州)、荥阳、阳翟(今河南禹州)等地,水陆并进,泛舟运粮,溯河西上。王世充之弟徐州(今属江苏)行台王世辩派部将郭士衡带兵数千与窦建德会合,号称三十万大军杀奔虎牢关。
窦建德做出援救王世充的决定之后行动速度已经算是很快,但还是晚了一步,虎牢关已经先期陷落,只能屯军于虎牢关东原(即东广武,在今河南荣阳东北广武山上),与镇守虎牢的唐将王君廓部形成对峙态势。
由于虎牢关被占,窦建德只能在板渚(位于今荥阳西北汜水镇黄河侧)修筑宫室,作长期进攻的准备。另外派人绕道入洛阳,给王世充打气。窦建德的到来给了唐军极其巨大的压力,此时洛阳又久攻不克,唐军内部开始出现了严重分歧。宋州(治所在今河南商丘南)刺史郭孝格和记室薛收等人认为,王世充缺粮但是装备精良,窦建德士卒精锐又运来大批粮饷,两者正好取长补短,因此决不能让他们合兵一处,否则唐军便会有大麻烦。此时应该用主力继续围困洛阳,李世民率精锐依虎牢关坚城据守,等窦建德露出破绽再一举击败他。
但萧瑀、屈突通和封德彝等人却认为,唐军已经疲惫思归,王世充据守坚城,不易攻克,窦建德又驱大军援救,势不可当。唐军如继续围城,将会腹背受敌,这决非上策。因此,他们主张将唐军攻占洛阳周边的军队集结起来,撤往新安,也就是慈涧地区唐郑战争的起始点,再看看有没有机会。李世民对大势看得很清楚,他就说王世充现在已经是大势已去,也就剩下最后这一口气,很快就会完蛋。而窦建德虽然兵势凶猛,但是却被我们占据了有利地形,打防守战我们必然能获得胜利。如果窦建德拖时间,那么王世充不出一月就会完蛋,到了那时候我们集合主力,必然能一举击败窦建德。如果放窦建德入关,那么军势会大大加强,哪里还会有机会可乘呢?于是他决定让齐王李元吉统帅围困洛阳的守军,屈突通等部将协助。而自己亲率骁勇三千五百骑东援虎牢关。
三月二十五日李世民抵达虎牢之后不顾行军疲惫,第二天就率五百精锐向窦建德的营地进发,要亲身观察窦建德军的虚实。走到半路上李世民让李世绩、程知节、秦叔宝这三员大将率领士兵们分散埋伏,自己身边只留下尉迟敬德这个“天下第一保镖”和另外三个骑兵。当时李世民豪气万丈,对尉迟敬德说:“我拿弓矢,你执马槊,前面就算有百万敌军又能怎么样?”走到离窦建德大营还有三里地的时候才遇到了窦建德的巡逻哨,当时还以为李世民是唐军一般的斥候,都懒得搭理他。结果李世民只能嚷了一嗓子:“我是秦王!”还射死了一个敌人,这才引动了窦建德军中的大部队。史书号称一下子出动了五六千骑兵来追杀。李世民则毫无畏惧,策马慢慢地走,等追兵快杀到的时候就用弓箭射击,每次都能射死一个,让夏军追兵惊惧不已。前后李世民射杀数人,尉迟敬德则杀了十几个,终于让追兵不敢再追。但李世民又在追兵面前显摆,引诱敌人来追。将夏军诱入了伏击圈,最后伏兵大起,夏军大败,被斩首三百余级,抓获两员夏军将官。此战羞辱了窦建德之后李世民还很不厚道地写了一封信,大概意思就是王世充已经没救了,您还是各回各家,各找各妈吧,别在这里磨叽了。
从这次探营的行动可以看出夏军还是一副典型的农民军的架势,完全没有正规化。李世民等人距离窦建德大营仅仅只有三里的时候才被巡哨发现,后面的追击也没有任何章法。看到夏军是如此水准,李世民心里就有了底,之后的战略布置更加的挥洒自如。
此时王世充得到了窦建德来援的消息就像打了兴奋剂一样,居然又让手下大将杨公卿、单雄信向唐军挑战,可是这次唐军的统帅换成了李元吉这个废物,唐军战斗失败,行军总管卢君谔战死。但是这场胜利并没有打破唐军对洛阳的包围,王世充依然只能无奈地盼望窦建德的解围大军快些到来。
窦建德对虎牢雄关无可奈何,攻城战是个技术活,本来就是农民军的短板,所以窦建德数次攻打幽州而不克,这次又遇上守城专家李世民,那更是连连吃瘪。夏军本来就是几部势力拼凑而成,素质良莠不齐,又因为几度失利导致了先前的锐气消磨殆尽,人心思归。这时候李世民又派王君廓率千余轻骑打击窦建德的粮道,也获得了很大的成功。这时候开始有人向窦建德进言,建议他不要顿兵在坚城之下,率军过黄河,翻越太行山,联合突厥去打李渊此时空虚的老家山西,这样可以达到围魏救赵的目的。其实这个建议就是突厥的处罗可汗向窦建德提议过的战略,只不过因为处罗的突然死亡而遭到搁置。
虽然这个建议得到了窦建德妻子的首肯,但却被窦建德所否决。窦建德的意见是王世充已经危在旦夕,如果重新改变战略去打山西,搞不好军队还没到山西王世充已经被扫平了。其实现在看这个建议,虽然在纸面上很有道理,但是以夏军的素质,想要翻越太行山入山西实在是一件非常困难的事情,如果在山地被唐军伏击,其危险性比在平原上面对面地决战要大得多。此外翻山越岭去进攻山西,对夏军的后勤更是一个非常巨大的考验,此时窦建德的后勤没有出什么大问题是因为他掌握了黄河,用河运来输送物资要比用陆路要方便得多,但是打山西的话显然不可能用这样的办法,如果被截断了粮道,那真是叫“天天不应,叫地地不灵了”。可以说这个战略实在是纸上谈兵,书生之见。