高祖武德四年(辛巳,621)
窦建德排兵列阵,从清晨直至晌午,士卒们又饿又乏,排列着坐在地上,又抢着喝水,建德徘徊着想要退兵。李世民命宇文士及率三百骑兵经过窦建德阵列西边,一路往南奔驰,并警示他:"贼人倘若不动,你便领兵返回,假如动了,就率军东进。"宇文士及来至阵前,敌阵果然动了,李世民说:"可以出击了!"这时黄河滩上的马匹也到了,就下令出兵交战。李世民率领轻骑提前进发,大军在后跟随,向东蹚过汜水,直逼窦建德军阵。窦建德正在接受群臣的朝拜,唐军骑兵骤然便至,朝臣纷纷向窦建德跑去,窦建德召来骑兵命他们抵御唐军,朝臣阻碍骑兵不能通过,窦建德挥舞手臂命令朝臣后退,进退之间,唐兵已至,窦建德处境为难,只得后退到东面的山坡。窦抗带兵攻击,交锋后稍稍失利。李世民率骑兵赶来,所向披靡。淮阳王李道玄勇往直前,在敌阵中冲杀,直杀出敌阵后方,又再次突杀回阵中,几进几出,箭矢扎在他身上就像刺猬毛一样密集,但他勇气不减,张弓射敌,都应弦倒地。李世民给了他一匹自己备用的战马,并让他跟在自己身旁。于是诸军混战,战场上漫天飞尘如云蔽日。李世民率领史大柰、程知节、秦叔宝、宇文歆等人卷起旌旗,冲入敌阵,出现在敌军阵后,张开唐军旌旗,窦建德的士兵回头瞧见,登时溃败,唐军追击三十里,斩下三千多颗首级。窦建德被槊刺中,逃窜隐匿到牛口渚。唐车骑将军白士让、杨武威一路穷追不舍,窦建德落马,白士让抬槊便想刺下去,窦建德说:"莫要杀我,我是夏王,可以让你们得到荣华富贵。"杨武威下马将其捉住,用备用马驮着,来见李世民。李世民谴责窦建德说:"我们讨伐王世充,干你什么事了,竟来侵我边境,触犯我军锋锐!"窦建德说:"今日我不自己来,恐怕以后还得劳烦您远道去取。"窦建德的将士都溃散而逃,唐军俘虏了五万人,李世民当天就将其遣散,让他们归还乡里。