公元620年,21岁的秦王李世民率十万大军围困洛阳八个月,城防坚固,唐军久攻不下,将士疲惫,军心涣散,李渊也派人来催撤兵。行军总管刘弘基等老将劝撤,李世民坚决拒绝,还下令洛阳不破绝不回军。此时长安又传来李渊密旨逼他撤军,他派谋士封德彝回长安解释,自己内心也犯嘀咕。
傍晚,李世民在营中转悠,听到伙夫闲聊。一黑脸汉子吐槽秦王攻城蠢,称再围五天王世充就得投降。李世民听后茅塞顿开,想起洛阳城早已断粮数月,百姓苦不堪言,物价飞涨,饿殍遍野,连朝廷官员都饿死家中,认定洛阳城已是强弩之末。
可这时,斥候来报,河北夏王窦建德率十万大军来救王世充。窦建德在河北经营多年,兵强马壮,唐军大营炸锅,老将屈突通等劝撤围退守,李世民却决定分兵,自己带三千五百精兵守虎牢关,让元吉继续围洛阳。众人惊呆,李世民却认为窦建德士气下滑、行军暴露、虎牢关易守难攻,三千五人足够。
武德四年五月,窦建德大军在虎牢关外耗月余,谋士凌敬建议绕道北上打太原,围魏救赵,但王世充使者贿赂窦建德将领反对,窦建德决定正面强攻。五月清晨,窦建德全军出击,李世民按兵不动,让夏军在太阳下暴晒至中午,士兵又热又饿又渴,阵型大乱。李世民率三千铁骑冲入夏军大营,窦建德被刺伤俘虏,李世民遣散五万俘虏。
随后,李世民押着窦建德到洛阳城下,王世充绝望,五天后开城投降,跪在李世民面前。李世民调侃,王世充磕头谢罪,无言以对。