五月,王世充的鄭州(治虎牢關)司兵沈悅,派人到唐行軍總管、左武侯大將軍李世績處請降。
李世績自從被李隱派來奪得管州後,主要的任務就是爲了奪取虎牢關,不過虎牢關易守難攻,要想強攻,難於登天,而沈悅的請降,讓李世績看到了其中的希望。
夜晚,李世績帶兵攻擊虎牢,沈悅作內應,一舉奪取了虎牢關,抓獲了鄭國的荊王王行本及其長史戴胄。
五月十五日,李世民派驃騎將軍段志玄與唐州總管王君廓,帶兵兩萬攻打孟津橋,孟津橋守軍感到吃緊,向孟津渡的王世充水軍請求救援。
孟津渡水軍共有八千人,接到求援訊息後,即出兵五千趕赴孟津橋,但行軍到一半的時候,忽然遠遠的見到孟津渡口燃起了沖天濃煙,頓時大驚,連忙調頭返回。
然而當孟津渡水軍返回到渡口的時候,卻猛然發現水寨大門上的旗幟,已然變成了唐軍的了。
原來此次進攻,是李世民與李隱多次書信來往後,決定一同發動的,李世民派兵馬從陸地上攻打孟津橋,而李隱則派水軍校尉張夜叉待其主力離開孟津渡後,迅速出擊,攻取了孟津渡。
由於水軍的家屬許多都是在水寨之內的,於是那五千士兵不顧將領的阻攔,紛紛划船至水寨投降,孟津渡將領無奈,也只得向張夜叉請降了。
而因爲沒有孟津渡口水軍的支援,孟津橋在段志玄和王君廓大軍的猛攻了兩日後,便告淪陷了。
至此,洛陽八處戰略要地,已爲大唐奪取了其中六處,僅僅剩下東南方的轘軒關和南面的闕塞關尚在王世充手裡,而由於轘軒關和闕塞關兩地所處的位置,並不處於唐軍主力進軍洛陽的路線上,所以這時合圍洛陽的話,時機也已成熟。
李世民於是與李隱一同寫了奏摺,派宇文士及長安,請求進軍包圍東都洛陽。
李淵對宇文士及道:“回去傳諭晉王與秦王,這次攻打洛陽,不獲全勝,決不收兵,攻陷東都之際,隋朝皇室的車駕儀仗、圖書簿籍以及器械,除去各人所必須的,就都委託你收集起來,其他的男男女女玉器布帛,都用來分賜給將士們。”
五月二十三日,李世民將軍營轉移到青城宮,尚未修好壁壘,王世充就率二萬兵馬從方諸門而出,憑藉舊馬坊的牆垣溝塹,靠近水抵禦唐軍,唐諸將全都驚慌。
李世民讓精騎在北邙山列陣,自己登上高地觀察鄭軍,對身邊的人說:“賊子的處境已窘迫了,傾巢而出,想僥倖打一戰,今日打敗他,以後他再也不敢出戰了!”
李世民命令屈突通率領五千步兵過谷水進擊王世充,並告誡屈突通道:“軍隊一交鋒立即放煙火。”
待到起煙,李世民帶領騎兵向南衝擊,身先士卒,與屈突通匯合兵力奮力戰鬥。李世民想了解王世充軍陣兵力分佈情況,率幾十精銳騎兵衝入敵陣,一直衝到敵陣背後,不可阻擋,殺傷很多敵人。
不久因長堤所限,李世民和衆騎兵走散唯有秦叔寶緊緊跟隨着李世民,幾名王世充的騎兵追上來,李世民的坐騎中箭倒斃,秦叔寶調轉馬頭向回騎,射擊追趕的鄭兵,箭無虛發,追兵不敢向前。
於是秦叔寶下馬將自己的坐騎讓給李世民,自己在馬前步行,手執長刀跳躍大喊斬殺幾人,衝出王世充軍陣,得以迴歸唐軍大部隊。
王世充也率領部下殊死戰鬥,軍隊幾次三番打散後重又集合起來,從早晨直到中午,王世充的軍隊才退軍。
在最後的交戰中,段志玄奮力與王世充的士卒交戰,深入敵陣,坐騎倒下,段志玄被王世充的士兵俘獲,兩名騎兵夾着他並抓住他的髮髻,準備過河,段志玄奮勇跳起,那兩名騎兵都掉下馬來,段志玄騎上馬奔回唐軍,後面有幾百名騎兵追趕,但不敢靠近。
李世民於是下令讓大軍朝洛陽進發,行臺僕射屈突通、贊皇公竇軌帶兵巡行營屯,突然與王世充遭遇,交戰失利,節節敗退。
眼看着屈突通、竇軌的大軍將要潰敗之時,李世民帶領其三千玄甲軍救援,王世充大敗,唐軍俘獲王世充的騎將葛彥璋,俘虜殲滅了六千多敵人,王世充僅帶着數百人逃跑回洛陽城,阻撓唐軍朝洛陽進軍的計劃再次失敗。
每次作戰,李世民都親自披上黑甲率領玄甲軍作爲先鋒,乘機進擊,所向披靡,令敵人畏懼。
擊退王世充的兵馬後,李世民繼續率大軍向洛陽進軍,最終包圍了洛陽宮城,城中王世充的防禦十分嚴密,大炮可以射五十斤重的石頭,投出二百步遠,有八個弓的弩,箭桿像車輻,箭鏃如同臣斧,可以射五百步遠。
李世民四面攻城,晝夜不停,十幾天未能攻克。城中先後有數十人想以城倒戈唐軍,均沒有來得及發動,就被王世充殺死。自從王世充到洛陽以來,還沒人能夠在他眼皮底下發動過陰謀。
苦戰多時後,唐軍將士都疲憊不堪想回關中,總管劉弘基等人請求班師回朝,李世民道:“如今大舉而來,應當一勞永逸。洛陽以東的各州已望風歸服,唯有洛陽一座孤城,其勢已不能持久,成功在即,怎麼能放棄而回朝呢?”
於是下令全軍:“洛陽不破,決不回軍,再有膽敢提起班師的一律斬首。”
衆人才不敢再提班師一事。高祖聽說後,也下密敕讓李世民還軍,李世民上表說明洛陽必定可以攻克,又派參謀軍事封德回朝面陳軍前形勢。
封德彝對李淵道:“王世充得到的地方雖然多,但都不過是略有聯繫的部屬,實際號令所能管轄的只不過洛陽一城而已,他已經智盡力窮,克城之日就在近期之內。現在如果回師,他的勢力就會重新振作起來,再加上各地互相聯合,以後想要消滅他就難了!”
於是李淵聽從李世民的建議。李世民寫信給王世充,曉以禍福利害,王當世充沒有任何回覆。