五月,王世充的郑州(治虎牢关)司兵沈悦,派人到唐行军总管、左武侯大将军李世绩处请降。
李世绩自从被李隐派来夺得管州后,主要的任务就是为了夺取虎牢关,不过虎牢关易守难攻,要想强攻,难于登天,而沈悦的请降,让李世绩看到了其中的希望。
夜晚,李世绩带兵攻击虎牢,沈悦作内应,一举夺取了虎牢关,抓获了郑国的荆王王行本及其长史戴胄。
五月十五日,李世民派骠骑将军段志玄与唐州总管王君廓,带兵两万攻打孟津桥,孟津桥守军感到吃紧,向孟津渡的王世充水军请求救援。
孟津渡水军共有八千人,接到求援讯息后,即出兵五千赶赴孟津桥,但行军到一半的时候,忽然远远的见到孟津渡口燃起了冲天浓烟,顿时大惊,连忙调头返回。
然而当孟津渡水军返回到渡口的时候,却猛然发现水寨大门上的旗帜,已然变成了唐军的了。
原来此次进攻,是李世民与李隐多次书信来往后,决定一同发动的,李世民派兵马从陆地上攻打孟津桥,而李隐则派水军校尉张夜叉待其主力离开孟津渡后,迅速出击,攻取了孟津渡。
由于水军的家属许多都是在水寨之内的,于是那五千士兵不顾将领的阻拦,纷纷划船至水寨投降,孟津渡将领无奈,也只得向张夜叉请降了。
而因为没有孟津渡口水军的支援,孟津桥在段志玄和王君廓大军的猛攻了两日后,便告沦陷了。
至此,洛阳八处战略要地,已为大唐夺取了其中六处,仅仅剩下东南方的轘轩关和南面的阙塞关尚在王世充手里,而由于轘轩关和阙塞关两地所处的位置,并不处于唐军主力进军洛阳的路线上,所以这时合围洛阳的话,时机也已成熟。
李世民于是与李隐一同写了奏折,派宇文士及长安,请求进军包围东都洛阳。
李渊对宇文士及道:“回去传谕晋王与秦王,这次攻打洛阳,不获全胜,决不收兵,攻陷东都之际,隋朝皇室的车驾仪仗、图书簿籍以及器械,除去各人所必须的,就都委托你收集起来,其他的男男女女玉器布帛,都用来分赐给将士们。”
五月二十三日,李世民将军营转移到青城宫,尚未修好壁垒,王世充就率二万兵马从方诸门而出,凭借旧马坊的墙垣沟堑,靠近水抵御唐军,唐诸将全都惊慌。
李世民让精骑在北邙山列阵,自己登上高地观察郑军,对身边的人说:“贼子的处境已窘迫了,倾巢而出,想侥幸打一战,今日打败他,以后他再也不敢出战了!”
李世民命令屈突通率领五千步兵过谷水进击王世充,并告诫屈突通道:“军队一交锋立即放烟火。”
待到起烟,李世民带领骑兵向南冲击,身先士卒,与屈突通汇合兵力奋力战斗。李世民想了解王世充军阵兵力分布情况,率几十精锐骑兵冲入敌阵,一直冲到敌阵背后,不可阻挡,杀伤很多敌人。
不久因长堤所限,李世民和众骑兵走散唯有秦叔宝紧紧跟随着李世民,几名王世充的骑兵追上来,李世民的坐骑中箭倒毙,秦叔宝调转马头向回骑,射击追赶的郑兵,箭无虚发,追兵不敢向前。
于是秦叔宝下马将自己的坐骑让给李世民,自己在马前步行,手执长刀跳跃大喊斩杀几人,冲出王世充军阵,得以回归唐军大部队。
王世充也率领部下殊死战斗,军队几次三番打散后重又集合起来,从早晨直到中午,王世充的军队才退军。
在最后的交战中,段志玄奋力与王世充的士卒交战,深入敌阵,坐骑倒下,段志玄被王世充的士兵俘获,两名骑兵夹着他并抓住他的发髻,准备过河,段志玄奋勇跳起,那两名骑兵都掉下马来,段志玄骑上马奔回唐军,后面有几百名骑兵追赶,但不敢靠近。
李世民于是下令让大军朝洛阳进发,行台仆射屈突通、赞皇公窦轨带兵巡行营屯,突然与王世充遭遇,交战失利,节节败退。
眼看着屈突通、窦轨的大军将要溃败之时,李世民带领其三千玄甲军救援,王世充大败,唐军俘获王世充的骑将葛彦璋,俘虏歼灭了六千多敌人,王世充仅带着数百人逃跑回洛阳城,阻挠唐军朝洛阳进军的计划再次失败。
每次作战,李世民都亲自披上黑甲率领玄甲军作为先锋,乘机进击,所向披靡,令敌人畏惧。
击退王世充的兵马后,李世民继续率大军向洛阳进军,最终包围了洛阳宫城,城中王世充的防御十分严密,大炮可以射五十斤重的石头,投出二百步远,有八个弓的弩,箭杆像车辐,箭镞如同臣斧,可以射五百步远。
李世民四面攻城,昼夜不停,十几天未能攻克。城中先后有数十人想以城倒戈唐军,均没有来得及发动,就被王世充杀死。自从王世充到洛阳以来,还没人能够在他眼皮底下发动过阴谋。
苦战多时后,唐军将士都疲惫不堪想回关中,总管刘弘基等人请求班师回朝,李世民道:“如今大举而来,应当一劳永逸。洛阳以东的各州已望风归服,唯有洛阳一座孤城,其势已不能持久,成功在即,怎么能放弃而回朝呢?”
于是下令全军:“洛阳不破,决不回军,再有胆敢提起班师的一律斩首。”
众人才不敢再提班师一事。高祖听说后,也下密敕让李世民还军,李世民上表说明洛阳必定可以攻克,又派参谋军事封德回朝面陈军前形势。
封德彝对李渊道:“王世充得到的地方虽然多,但都不过是略有联系的部属,实际号令所能管辖的只不过洛阳一城而已,他已经智尽力穷,克城之日就在近期之内。现在如果回师,他的势力就会重新振作起来,再加上各地互相联合,以后想要消灭他就难了!”
于是李渊听从李世民的建议。李世民写信给王世充,晓以祸福利害,王当世充没有任何回复。