我和各位约定,刚过中午,必定打败他们!”窦建德轻视唐军,派三百名骑兵渡过汜水,在距离唐营一里左右的地方停下,派使者对李世民说:“请挑选几百名精锐士兵,与我们较量一番。”李世民派王君廓率领二百名持长矛的士兵应战,双方交战,你来我往,不分胜负,各自撤军。王琬骑着隋炀帝的青骢马,铠甲兵器十分华丽,他出列在阵前向众人夸耀。李世民说:“他骑的真是匹好马!”尉迟敬德请求去夺取,李世民阻止他说:“怎能为了一匹马损失猛将?”尉迟敬德不听,和高甑生、梁建方三人骑马直冲敌阵,擒获王琬,牵着他的马返回,敌军没人敢阻挡。李世民派人去召回黄河北岸的战马,等战马到了,才出兵作战。
窦建德的军队列阵,从清晨到中午,士兵饥饿疲倦,都坐在阵中,又争相喝水,徘徊着想撤退。李世民命令宇文士及率领三百名骑兵从窦建德阵前向西行进,再奔驰向南,告诫他说:“敌军如果不动,你就领兵返回;如果动了,就领兵向东出击。”宇文士及到了阵前,敌军阵形果然动摇,李世民说:“可以进攻了!”当时黄河北岸的战马也已赶到,于是下令出战。李世民率领轻骑率先冲锋,大军随后跟进,向东渡过汜水,直逼敌阵。窦建德的文武官员正在朝见他,唐军骑兵突然到来,官员们急忙奔向窦建德,窦建德召骑兵抵御唐军,可骑兵被官员们挡住,无法前进。窦建德挥手让官员们后退,就在这进退之间,唐军已经杀到。窦建德窘迫,后退依靠东陂。窦抗领兵进攻,作战稍有不利,李世民率领骑兵赶赴救援,所到之处敌军纷纷溃散。淮阳王李道玄挺身而出,冲入敌阵,直冲到敌军后方,又突阵返回,反复进出,身上插满弓箭,像刺猬毛一样,却勇气不减,射箭必中,敌军应声倒地。李世民把备用的战马给他,让他跟随自己。于是唐军各路兵马大战,战场上尘埃漫天。李世民率领史大柰、程知节、秦叔宝、宇文歆等人,卷起旗帜冲入敌阵,从阵后穿出,竖起唐军旗帜。窦建德的将士回头看见唐军旗帜,顿时大败,唐军追击三十里,斩首三千多级。窦建德被长矛刺中,逃到牛口渚躲藏起来。唐军车骑将军白士让、杨武威追击他,窦建德坠马,白士让举起长矛要刺,窦建德说:“别杀我,我是夏王,能让你们富贵。”杨武威下马擒获他,用备用马驮着,来见李世民。李世民责备他说:“我讨伐王世充,与你有什么关系,你却越过边境,来触犯我的兵锋!”窦建德说:“如今我不自己来,恐怕还要劳烦你远道去捉拿。”窦建德的将士全部溃散,唐军俘获五万人,李世民当天就遣散了他们,让他们返回乡里。
封德彝入朝祝贺,李世民笑着说:“没听你的话,才有今天的胜利。智者千虑,也难免有一失啊!”封德彝十分惭愧。
窦建德的妻子曹氏与左仆射齐善行率领几百名骑兵逃回洺州。
甲子日,王世充占据的偃师、巩县都投降了唐军。
乙丑日,朝廷任命太子左庶子郑善果为山东道抚慰大使。
王世充的部将王德仁放弃旧洛阳城逃跑,副将赵季卿献城投降。秦王李世民把窦建德、王琬、长孙安世、郭士衡等人囚禁起来,带到洛阳城下,让王世充观看。王世充与窦建德交谈,忍不住落泪,随后派长孙安世等人进城报告窦建德战败的消息。王世充召集将领商议突围,向南逃往襄阳,将领们都说:“我们所依靠的是夏王,如今夏王已被擒获,就算突围出去,最终也成不了事。”丙寅日,王世充穿着白色衣服,率领太子、大臣、二千多人到唐军营门投降。李世民以礼接待他,王世充趴在地上,吓得满头大汗。李世民说:“你过去总把我当成小孩子看待,如今见到小孩子,怎么这么恭敬呢?”王世充磕头谢罪。随后李世民部署军队,先进入洛阳,分别驻守集市店铺,禁止士兵侵犯掠夺,没人敢违反。
丁卯日,李世民进入洛阳宫城,命令记室房玄龄先进入中书省、门下省,收集隋朝的地图、户籍和诏书制令,却发现这些都已被王世充销毁,一无所获。他又命令萧瑀、窦轨等人查封仓库,收集金银绸缎,分赏给将士。随后逮捕王世充的党羽中罪行特别严重的段达、王隆、崔洪丹、薛德音、杨汪、孟孝义、单雄信、杨公卿、郭什柱、郭士衡、董睿、张童儿、王德仁、朱粲、郭善才等十多人,在洛水岸边斩首。
起初,李世积和单雄信关系极好,发誓要同生共死。等到洛阳被平定,李世积向李世民进言,说单雄信勇猛过人,请求用自己的全部官爵来赎单雄信的死罪,李世民没答应。李世积反复恳求还是没成,哭着退了出来。单雄信说:“我就知道你办不成事!”李世积说:“我并不吝惜自己的性命,愿意和兄长一起死;但我已经把这身性命献给了国家,事情没法两全。而且我死了之后,谁来照顾兄长的妻子儿女呢?”于是割下自己大腿上的肉给单雄信吃,说:“让这块肉跟着兄长化为尘土,也算是没辜负当初的誓言了!”百姓痛恨朱粲的残忍,争相扔瓦砾打他的尸体,没多久尸体就堆得像座小山。唐军囚禁了韦节、杨续、长孙安世等十几人,把他们押送到长安。那些没罪却被王世充关押的百姓,全都被释放;被王世充杀害的,都予以祭祀并撰写悼文。
起初,秦王府官员杜如晦的叔父杜淹效力于王世充。杜淹一直和杜如晦兄弟不
