五月,李世民得到消息,窦建德将盛唐军在泗水北岸木马修整时突袭火牢关。李世民将计就计,白天在河北木马夜间则悄悄地将马群分批迁回虎牢关。
当窦建德派出长达二十余里的队伍陈兵泗水进攻虎牢关时,李世民对诸将说:窦建德大军要渡险关,竟然如此嚣张,看来他的氏族纪律性差。他全军出动,自认为人数众多,定能取胜,所以肯定心中轻慢我军。只要我军按兵不动,等对方士卒击恶疲劳时,对方士气必然衰落,攻势自然衰减。到那时我们在乘机追击,一定能在午后打败他。
窦建德见李世民不敢出战,对唐郡心存鄙视,随派出三拜金奇趟过泗水,来到据唐军持有一礼的地方,然后派人前去虎牢关下叫阵。李世民将计就计,派王军阔带领二十名长朔兵前去应战。这些长朔兵一直敌进我退,敌退我追,演戏般的打了半天也没有分出胜负,窦建德却因此白白浪费了很多时间。
就这么打打闹闹的,很快临近中午,窦建德的大品心头部队从清晨出发,一直到现在也没有和敌人交上手,不免有些情绪。这时人马都已经疲惫,军中一片萎靡,士兵饥饿疲倦,大都席地而坐。李世民在远处看到敌阵混乱,直到出击的时间到了,立即灭内。
宇文士即率领三百骑兵从敌阵西端向南飞驰。初八前,他逐乎语文诗集到这次冲击敌阵只是试探,如果冲击不动,你就带兵回来。如果冲击后,敌人大乱,就带兵向东猛攻。结果李文氏及率部刚到敌人阵前,敌阵就开始骚乱起来。一直在远方观察的李世民认为敌人现在连战斗队形都无法保持,说明体力已经衰退,心智已混乱。
当即下定骑兵团向夏军发动猛烈攻击。窦建德的不对,以步兵为主,面对呼啸而来的唐骑兵队伍,来不及抵抗就全线溃散了。李世民率领精骑兵在敌军中来回冲杀,如入无人之境。窦建德本人也在慌乱中被长枪刺中后撤退到黄河与泗水交汇口纽口柱,被李世民的部下俘获。
窦建德被俘的消息传到他妻子曹氏而中,曹氏立马率领夏军于部返回河北。李世民得知窦建德被俘后大喜过望,同时也深感遗忘。等部下把窦建德压毁军营时,他才相信这是真的。窦建德进入大战后,李世民立马命令士兵解开绳索,并亲自为窦建德包扎伤口。只要窦建德与唐军合作,攻破东都荡平王世充定会保他家人性命无忧。
大伟感动的窦建德立即给妻子写了一封信,随后曹氏也率下过百官降堂。第二天一早,李世民给窦殿的王婉、长孙安氏、郭世恒等人每人安排一辆囚车,带他们赶赴洛阳。他要以窦建德被俘为突破口,彻底瓦解王世冲的心理梗鉴。到达洛阳后,李世民特意把押运窦建德的囚车拉到洛阳城下,让王世冲在城墙上与窦建德见一面。
随后李世民又派降降长孙安氏入城,向王世冲详细介绍窦建德失败的过程。李世民的攻心战术比数万大军更让王思聪感到害怕。郑国将士想到窦建德有十万大军,结果仍然被唐军生擒活捉。陆阳城里还有什么力量可以与强大的唐军相抗衡?于是投降的声音越来越多。
尽管王世冲提议继续垂死挣扎,但却没有人想骗。五月十九日,在李世民反扑保证,不杀王世冲的情况下,王世冲率曾国太子群臣共两千多人投降。唐军在洛阳虎牢的战斗花了将近一年的时间,但却连续荡平了王世冲两制,最有实力与礼堂争夺天下的势力,为礼堂统一事业做出了决定性的贡献,奠定了礼堂统一天下的格局。
李世民在此战中卓越的表现使他个人的威望在大唐内务达到了顶峰。五月十日,李世民携带大量粮食一进入洛阳就开始派发粮食,久被围困的洛阳百姓欢欣鼓舞,唐军的仁义爱民让洛阳百姓真心恢复。随后李世民暗宫行赏犒劳三军,一切安排妥当之后,李世民押着王世聪和窦建德的挽回唐都长安。
七月九日,李渊举行了盛大的欢迎仪式迎接李世民的再次凯旋。王世冲和窦建德二人在长安当众游街之后得到了不一样的结果,最有希望与李渊竞争皇位的窦建德被李渊当众斩首,时年四十八岁。
对于王世冲,李渊当众数落了他和大唐作对的罪行,但因为李世民曾答应保王世冲不死,于是将王世冲发配辞川,但已谋反对猝死了他的兄弟子职。不过侥幸逃脱的王思聪也没有高兴多久,很快就在回四川的途中被仇人害死。