唐建国初年,全国的军事形势发生了很大的变化,隋炀帝被杀,李密领导的瓦岗军被王世充歼灭。中原地区形成了李渊所建的“唐”政权、王世充建立的“郑”政权和窦建德建立的“夏”政权三足鼎立的局面。
在当时的情况下,唐和窦建德的“夏”中间有太行山的阻隔,距离较远的王世充的“郑”则在唐的东大门之外,首当其冲。于是,公元620年秋天,李世民率领诸军东征洛阳,开始了平定王世充的战争。
东都洛阳,经过隋炀帝10多年经营,物资充实、城池险要,王世充还控制了洛阳周围的一大片区域。李世民借鉴瓦岗军久攻不下的经验教训,采取了先打外围、逐渐削弱、孤立围困的谋略。
李世民经过7个月的作战,基本上扫清了洛阳外围的城池,随后开始了大举围攻洛阳的行动。但是洛阳城非常坚固,王世充兵多将猛,唐军四面进攻,日夜不息,连续攻了10多天仍然不能攻克。在这期间,王世充秘密派遣使者,前去游说窦建德说:“如果窦建德仍然坐山观虎斗的话,王世充灭亡之后,‘夏’政权一样势单力孤,难逃被唐灭掉的厄运。”终于,窦建德同意出兵相救。王世充也不再出战,刻意保存实力,等待救兵。洛阳城中粮草日渐不足,最后严重缺乏,饿死的人交错地倒在路旁。
唐军这一方面,经过持续的作战,将士都疲惫思归,士气比较低落。总管刘弘基等人请求撤军,高祖李渊也暗中让李世民班师回朝。李世民意志非常坚定鼓励将士说:“这次我们领重兵而来,应当一劳永逸,一举拿下洛阳,现在东边的各州都已经望风而降了,只剩下洛阳一座孤城,从现在的形势来看,王世充坚持不了多久了,大功马上就要告成,怎么能就这样放弃呢?”于是李世民下令军中:“洛阳不破,决不还师,谁再敢说班师,必杀不饶!”同时,急上奏折,申述洛阳必定可破,又派参谋军事入朝,当面向李渊报告情况。终于,李世民在坚城不能克、将士思归、军心不稳、皇上动摇的关键时刻,力排众议,把这场战争坚持了下来。
洛阳危在旦夕的时候,窦建成德领兵10万(号称30万),大举南下前来相救。面对即将来犯的窦建德,李世民部下的意见分为两派,一派认为,王世充现在只缺粮草,万一得到接济,战争就会旷日持久,胜败就很难预料了。应该在围困洛阳的同时,由秦王亲自率领精锐骑兵抢先占据虎牢关,依据天险阻击窦建德。但是,另一派的意见却相反,认为去虎牢关,前有窦建德,后有王世充,必然会腹背受敌,唐军应该先退守新安,再寻机而战。
最后,李世民还是采纳了前者的意见,说:“王世充粮草已将用尽,内外离心。窦建德将士骄横懒惰,我们必须进占虎牢,扼守险要之地。窦建德如果要和我交锋决战,我一战就能将他打败,如果他们畏缩不战,那么王世充缺粮,10日之内必然不攻自溃。假若现在不速战速决,让窦建德占据了虎牢,洛阳周围的那些城刚刚归附我们,肯定不会力守,我军就很难再有良机取胜了。”
决定之后,李世民命令屈突通和齐王李元吉继续围困洛阳,自己则率领精锐骑兵3500人火速奔袭虎牢,历史上有名的虎牢之战正式开始了。
三月,李世民占据了虎牢关,他亲自东进20里侦察敌情,窦建德无法进军,只好就地筑垒固守。四月,窦建德军队几次作战失利,将士思归心理日益加重,军心开始涣散,而粮道又遭到了唐军的突袭,大将张青也被俘虏。
这时,国子祭酒凌敬向窦建德进谏说:“大王应该先放弃救洛阳,全军渡河攻打怀州,再向西穿越太行山,趁虚攻占上党,然后再南下,占据河东的广大地区,不但能占领疆土扩充兵力,还能威胁关中,从而迫使李世民退兵自救,洛阳之围不攻自破。”但是王世充派来的两个人日夜在军中哭泣,请求窦建德速救洛阳,而且窦建德一心想找李世民决战,根本听不进去,反而说这是书生之见。
这一天,李世民得到谍报说:“窦建德探知唐军牧草已尽,想趁唐军在河滩上牧马,军中缺少骑兵的时候,前来偷袭虎牢。”李世民决定将计就计。五月初一,李世民渡河,在黄河北岸牧马,并留下战马千匹,李世民则在晚上返回虎牢。
第二天早晨,窦建德果然中计,觉得有机可乘,就率领全军出动,排兵20里击鼓前进。想用气势吓倒唐军。李世民登高观望,对部将说:“窦建德过险关鼓噪而进,这是毫无纪律的表现。临城而列阵,是在轻视我军。我们如果按兵不动,他们的勇气必然渐渐衰退,列阵久了将士就会饥饿疲劳,不攻自退,等那时我们再乘势追击,就能战无不胜。”果然不出所料,到了中午,窦建德的军队因为久未开战,士气低落,士卒又饥又渴,开始争着喝水,很多人坐在地上,没有了开始时的阵形,一副狼狈相。
李世民此前早已将战马赶回,此时看时机已到,便下令攻击,全军以排山倒海之势冲向敌军,窦建德措手不及,被杀得大败,后退途中被唐军俘虏。
窦建德一败,洛阳的王世充成了惊弓之鸟,获救无望,城内再无粮草,想突围又遭到众将的反对,只好开城投降了。
窦建德押送到长后被处死,他的部将起兵,最终也被唐军镇压了下去。后来,南方的诸多政权也归附了李唐。李世民东征西讨的统一战争终于结束,李唐王朝建立起了全国的中央集权统治。