李世民当时也身在战场,和其他唐军将士一样奋力向前进攻,因防守的夏军人墙十分密集,饶是秦琼、尉迟敬德等人个个以一敌十,无法挨近窦建德的身边。李世民眼看战场上尘土弥漫,能见度突然一下子变得极低,兴奋地叫道:“秦叔宝、程咬金、尉迟敬德、史大奈、宇文歆,你们几个跟随我来!”说着便骑马悄悄离开了战场。由于双方将士皆伸手不见五指,大多数人对此并未察觉,只有围绕在李世民身边,一直在小心保护着秦王的秦琼等少数几个人听见。秦琼等人于是离开最前线,与李世民在战场附近会合,李世民下令他们,每个人取来一面大将的牙旗,把旗幅卷起来,使得旗杆形似长矛,以方便挟在腋下,然后重新返回战场。这几人遵从李世民的命令,各自取来一面旌旗,将之席卷,再次冲入敌军阵中。李世民带着他们宛如游龙一般在敌阵中穿梭,专寻找敌军的空隙游走,若是与敌军的大部队相逢,则避而不战,夏军为了保护窦建德,也无心追赶他们。不知不觉,这几位唐军大将竟成功绕过了夏军结成的厚实人墙,来到了夏军背后的山坡之上。李世民将自己带来的那面旌旗舒展开来,率先插在坡上,又令其他几人也照他的样子做。不一会儿,六面唐军大将的牙旗陆续被插在山坡上,在夏军的背后迎风飘展。
夏军起初对此事一无所知,双方又交战了一会儿,随着被马蹄溅起的尘埃渐渐落定,两军将士终于又能勉强看清战场四周的形貌。忽然,有一位夏军骑兵惊呼道:“不好,我军被包围了,快看,有数支唐军已占据了我军身后山坡!”其他夏军骑兵随着他手指的方向看去,只见在沙尘的背后,隐隐然有数支唐军部队已居高临下,摆好了冲锋的队形!—其实,那山坡上总共才六个人,六面牙旗,但古时候作战,牙旗在哪里,就代表这支军队的主将在哪里,主将在哪里,就代表他所率领的军队在哪里;反过来说,一旦一支军队的牙旗被人砍倒,就意味着这支军队已经战败,甚至连主将都已经阵亡(所以才有“斩将夺旗”这一成语)。方才还密不透风的夏军人墙只道腹背受敌,为此迅速崩溃,上万名夏军骑兵不约而同地撇下窦建德,疯狂的向战场外逃去,因自相践踏而死者不计其数。窦建德也跟着他们随波逐流,途中被唐军伸来的一支长矛刺中大腿,窦建德怕显露身份,不敢大声呻*,忙丢弃头盔,装作是一名偏将伏在马背上继续逃走;又行了数里,竟无意间来到了李世民之前牧马的地方,有两位唐军将领,一位名叫白土让、一位名叫杨武威,刚好也追击溃败的夏军来到这里,与窦建德迎面相遇。窦建德吓得急忙跳下战马,想躲入附近的草丛,哪知他腿脚不便,才一瘸一拐地走了几步便痛苦地倒在了地上。白土让、杨武威不知此人的身份,挺枪欲刺,窦建德急得双手乱摇:“别杀我,我是夏王,我真的是夏王,我的头颅非常值钱。”白土让、杨武威大喜,把窦建德捆作一团扶回马背上,带着他去见李世民。
李世民见窦建德被部下押解过来,如释重负之余,斥责他道:“王世充天怒人怨,是自取灭亡,你何必远离国境,为了这种小人前来送死?”窦建德十分尴尬,只得苦着脸答道:“我自来送死,免得秦王您日后为了我还得亲自去一趟河北。”唐军将士听后哈哈大笑。此时,军营那边来报,说夏国的十万步兵听说夏王行营沦陷,已经全部投降,因人数实在太多,请问秦王该怎么处置他们。李世民道:“每人发放三日口粮,把他们全部放了吧,窦建德既已被擒获,夏国事实上已经灭亡,无须再为难他们了。”
随后,李世民押解着窦建德、王琬、长孙安世等一行人,下令三军奏起凯歌,离开虎牢,前往洛阳城北。唐军快到洛阳郊外时,李世民派夏国降兵先行前往城下通报:“夏王窦建德到了。”王世充不知究竟,喜得手舞足蹈,急忙登上城头向北眺望,不多时,窦建德果然来了,不过不是骑着高头大马来的,而是坐着囚车来的。王世充的心理防线刹那间崩塌了,他嚎啕大哭,一边哭一边埋怨窦建德道:“你曾作过承诺,答应一定会救我,怎么弄成这副模样?”窦建德铁青着脸,坐在囚车里一声不吭。李世民示意左右,把长孙安世放了,让他独自回城向王世充讲述虎牢之战的经过。王世充这才得知,不但窦建德败了,连夏国也都亡了,他与诸将商议,不如趁着唐军主力尚未完全抵达,我军立即弃城向南方突围,总之先逃过长江再说。这一次,没有将领愿意跟随他去,众将皆道:“我等之所以苦苦支撑到现在,是因为有窦建德。如今连窦建德都已被俘,总算突围,又怎能取得成功?”五月初九,经过数日的犹豫,王世充身穿白衣,带着郑国太子和百官来到城外,向唐军递上了降书。