窦建德之败原因有四。
夏军内部不和。别看窦建德有三十万大军,其实是收罗了各路起义队伍,又没有经过系统全面的整编,各自为战,互不统属,窦建德对这支队伍形不成绝对的控制力,属于军阀联盟性质。有利则纷纷聚合,有害则个个飞飙。当年有人跟窦建德建议,可以不跟李世民在虎牢关死磕,而是绕过虎牢关进入山西腹地,直捣李唐老巢太原,再联合突厥人直取长安,这叫围魏救赵,到时候李世民必须放弃洛阳回援长安,王世充再从背后追杀李世民,李唐王朝就完蛋了。
这个建议看上去很美,也很毒,但是窦建德否定了这个所谓上策。窦建德说,咱们带领的是一帮乌合之众,之所以能跟你来到洛阳城下,就是想赶紧打败李世民进洛阳城抢珠宝美人,而且李世民只有两千多人,指日可下,你却放弃李世民千里跋涉去鸟不拉屎的山西干仗,没等到了山西人就跑光了。
夏军战斗力不强。人多未必力量大,兵不在多在于精。战神李世民很清楚的认准了这一点,他说,夏军一直没打过硬仗,一切太过顺利,不知道天高地厚,将骄兵惰,这是兵家大忌。也就欺负欺负被李密打残了的宇文化及,真的碰上硬茬子,根本不够看。战斗过程也正如李世民所料,三十万大军被两千五百玄甲军一冲即溃,窦建德也被活捉了。
窦建德军事能力不如李世民。李世民被老人家称为中国历史上最会打仗的人,比朱元璋还厉害,在跟窦建德干仗前,已经先后干掉了薛举,刘武周,王世充,宋金刚等枭雄,别看年纪小,但是已经有了丰富的战斗经验和统帅能力,反观窦建德的军事素养却差得远。在冷兵器时代,一支部队能不能取胜,统帅的指挥水平尤其重要。
窦建德失去了战机。春秋时期曹刿说过,一鼓作气,再而衰,三而竭。窦建德远道而来,兵强马壮,正需要一鼓作气拿下虎牢关杀进洛阳城,但是他却逗留两个多月之久,不打,不撤,优柔寡断,硬生生把战机失去了,士兵们的战斗意志也被瓦解殆尽。
终上所述,窦建德失败并非自己是什么仁义之师,而是战斗力不强。