徐圓朗、杜伏威先後突然向夏國投誠,不僅讓隋帝國内部混戰一團的各大勢力極爲震驚,更是極大刺激了野心勃勃的李唐政權。
李唐政權在夷陵以東的長江中下遊和關中以北對李軌所部的擴張都受到強烈阻撓後,爲了盡可能的增加自己的實力,李淵開始将自己的目光投向占據中原河洛之地的王世充。
因爲李唐得到了關隴鮮卑軍事貴族集團大部分人的支持,所以李淵對王世充形成了比較明顯的軍事優勢。
他決定不再采用以往那種小規模的一城一地的拉鋸戰,準備對王世充發起全面的攻勢,盡可能的在短時間内消滅王世充建立的鄭國政權。
剛剛穩固住自己從瓦崗軍那裏奪來地盤的王世充得知這一消息後大吃一驚,畢竟他從瓦崗軍手裏搶來的地盤還不穩固,爲了抵禦唐軍他從所屬各郡中挑選出二十萬骁勇之士結集于洛陽,設置四鎮将軍分守四城。
就在夏曆五十五年七月,李世民奉命率軍出征王世充。
因爲王世充占據弘農郡和函谷關很難攻打,李世民先是派出一部分大軍從潼關出發向東,做出主力進攻弘農郡的架勢,然後他親自率領大軍從河東郡突然渡河南下攻入弘農郡的背後奪取了毫無防備的函谷關。
然後又與潼關出來的唐軍前後夾擊一舉拿下了換亂一團的弘農郡,唐軍的進攻速度是如此的快,洛陽以西的河陰、河南等各城守軍居然還不知道唐軍已經攻打過來,城池接連被唐軍攻克,這樣一來唐軍一口氣就攻打到了洛陽城外。
李世民的迅速進擊震驚了王世充,介于唐軍的迅速攻勢和戰略上的優勢,王世充的鄭政權大量官員軍隊紛紛投敵,這時的王世充已經不敢相信任何人,他隻相信自己的親族家人。
于是王世充派魏王王弘烈鎮守襄城郡,荊王王行本鎮守虎牢關(今河南汜水縣西北),宋王王泰鎮守懷州(今河南沁陽縣),齊王王世恽兼管南城(今皇城南門外),楚王王世偉鎮守寶城(皇城),太子王玄應鎮守東城(皇城之東),漢王王玄恕鎮守含嘉城,魯王王道徇鎮守矅儀城(東城之東)。
王世充委派的這些率兵鎮守一方的大将都是他自己的宗親家人,他自己則是親自率最精銳的三萬士兵到城外拒擊唐軍。
唐軍先鋒大将薛猛率前軍包圍了慈澗(今河南新安縣東),王世充率兵三萬親自前來救援。
不過這時李世民率騎兵三萬餘突然進軍慈澗意圖将其圍殲,王世充見狀不得不放棄慈澗退回洛陽。
随後李世民派史萬寶從宜陽南下占據龍門(今伊川縣西南),劉威德從太行東(今山西濟源縣)包圍河内(今河南沁陽縣),王君廓從洛口(今河南鞏縣東南)去截斷世充運送軍糧的道路。
黃君漢(注意,這貨就是當初放走翟讓的獄吏)從河陽去攻打回洛城(今河南孟津縣東南),李世民親帶大軍屯于北邙山連營紮寨,逼向王世充親自戍守的洛陽城。
等到了八月,黃君漢派校尉張夜叉率水軍襲取回洛城,截斷了河陽南橋,王世充大怒派太子玄應、大将楊公卿等攻打回洛,卻未能攻克,隻得在回洛城西邊築起一座城堡留兵鎮守。
不久,劉德威攻克了懷州城(今河南沁陽縣)的外城,情況愈發對王世充不利起來。
九月,王世充部将顯州(今河南沁陽縣)總管田瓒率所部汝南、淮安兩郡投降李唐,于是李唐開始繞過洛陽城攻打淮陽、谯郡、汝陰等淮北諸郡。
面對着不斷惡化的局勢王世充麾下的将領充滿了悲觀的情緒,于是在九月十日這天王世充麾下大将張鎮周忽然向李唐投降,薛猛趁勢攻陷硖石堡(今河南洛陽縣西)、千金堡(今河南洛陽縣北)。
随即又有王世充大将楊慶以魯陽郡(治今河南魯山)降唐,于是唐軍又開始從南陽郡不斷向北攻打中川、汝北兩郡,這時唐軍已經從兩個方向威脅到洛陽城的安危。
王世充太子王應玄鎮守虎牢,軍隊駐紮在荥水、汴水之間,當他得知魯陽郡降唐時立刻率部前來奪取,卻被唐軍阻擊阻擊。
随後,荥州、汴州先後降唐,唐軍打通了嵩山之南聯通南陽和河陰唐軍之間的通路,王玄應見諸州皆降,隻得從虎牢撤回洛陽,這時王世充幾乎已經失去了洛陽以外大部分郡縣的控制權。
面對着唐軍進逼洛陽圍城不斷,自己的屬地也逐漸爲唐所占的日益惡化的局面,王世充在與大臣一番商議後不得不決定派人向割據大河以北的窦建德請求援助,畢竟如今僅存割據勢力中最強大的就是李淵了。
雖然從前王世充與窦建德雙方曾爲争奪河内等一部分地盤發生過沖突,但建德的中書侍郎劉彬認爲,應把握戰機暫棄前嫌出兵應援。
他分析說:天下大亂,唐得關西,鄭得河南,趙得河北,共成鼎足之勢。今唐舉兵臨鄭,自秋涉冬。唐兵日增,鄭地日蹙,唐強鄭弱,勢必不支。鄭亡,則趙不能獨立矣,不如解仇除怨,發兵救之。趙擊其外,鄭攻其内,破唐必矣。唐師既退,徐觀其變,若鄭可取之,并二國之兵,乘唐師之老,天下可取也。
劉彬對形勢的分析可謂切中要害、一箭雙雕,而且切實可行。當時唐軍勢盛,單獨由趙國或鄭國都不足以與唐軍對抗,隻有維持三足鼎立,才可能生存,窦建德采納了他的建議。
就在夏曆五十六年三月,窦建德令範願守曹州,單雄信等諸位大将率衆西救洛陽,水陸并進以船隊運糧,駐軍于成臯東邊的東原。
這時唐軍圍攻洛陽,哪怕有火藥武器的幫助也因爲洛陽城牆厚達五丈,李唐制造的低劣火藥根本無法将其炸塌,洛陽城的久攻不下讓李唐将士多疲憊欲歸,李淵亦有休兵之意,但李世民卻不同意。
此時面對窦建德的前來,多數人認爲‘吾兵疲老,世充憑守堅城,未易猝拔,建德席地而來,鋒銳氣盛。吾腹背受敵,非完策也’主張退兵新安,以承其弊。
但是大将郭孝恪反對撤兵,他認爲‘世充窮蹙,垂将面傅,建德遠來助之,此天意欲兩亡之也。宜據武牢之險以拒之,伺間而動,破之必矣!’
薛收也贊同此意見,并進一步補充了郭孝恪的意見,如今李唐政權面對的不僅僅是窦建德和王世充,更要在接下來面對最強大的夏國,隻有盡快統一天才能在日後與夏國的戰争中保持一定的抵抗力。
李世民很贊同郭孝恪和薛收的分析和建議,針對蕭瑀等大将的反對意見,明确決斷與窦建德大軍繼續作戰。
于是他中分麾下,令齊王李元吉圍守洛陽,他親率精兵三千五百人東進虎牢。
到虎牢後,世民帶人偵察窦建德軍情,沿途将五百騎分别埋伏道旁,僅帶尉遲敬德等四名勇将跟随。
在距窦建德軍營三裏處時幾人卻被對方發現,窦建德大将派出五千餘騎兵追擊,李世民等人迅速撤退把他們引入伏擊圈内,周圍唐軍齊出大敗敵軍,斬首三百餘級,這就極大的鞏固了唐軍的士氣。
建德率兵西來,被唐軍阻擊于虎牢關近月餘,幾次交戰又都失利,将士接連受到挫折之下開始思歸,唐軍又派輕兵攔截了他的軍糧,不斷襲擾窦建德的後方糧道。
面對這種形勢,他召集将士讨論用兵之策,淩敬勸說窦建德大王先攻取大河以北的懷州、河陽,派遣大将駐守,然後翻越太行山脈攻入上黨,迅速奪取李唐在河東汾河故地的汾、晉等地,然後再奪取蒲津威脅關中之地。
淩敬的計謀也是很好,不過王世充連連派人向建德求救哀求催促他發兵,窦建德麾下諸将也覺得自己的兵力遠遠超過唐軍,心中有了輕敵的心思都主張與唐軍決戰。
雖然建德夫人曹氏也勸他要聽從淩敬的建議,但建德不予理會,依然決定率大軍與唐作正面交鋒。
經過一番偵察後窦建德計劃在唐軍馬料用盡,放馬于河北之際襲擊虎牢關。
這一消息卻爲李世民所知,五月李世民北渡河,南臨廣武,故意放馬于河邊以引誘對方,然後他自己卻在當夜緊急趕回虎牢關。
第二天,中計的窦建德果然率全軍來攻打虎牢關,李世民堅壁不出,窦建德布好戰陣等了兩個時辰,士卒饑疲之下都坐下來休息,因爲天氣炎熱又争着去喝水漫無紀律。
就在這時李世民乘窦建德軍散亂之機率衆出戰,直撲其陣。
而窦建德這時正在接見群臣,唐騎兵突然殺到,大臣們都向窦建德奔去,窦建德命騎兵應戰,并命擋路的大臣們退開,就在這進退之間,唐軍已經殺到了眼前,窦建德隻得退到東邊的山坡。
此時,兩軍惡戰,李世民親自率幾員大将卷着唐軍戰旗突進到窦建德軍陣的後面,然後打開旗幟。
正在激烈交戰的窦建德軍以爲自己後方軍陣已潰,于是全軍大敗,窦建德也在戰亂中被擒。