性喜扶微助弱、见义勇为,在乡里威信很高。大业七年(611年),朝廷募兵征剿高丽,窦建德被选为二百人长。
同县人孙安祖也被征入伍,因家中遭水淹、妻子饿死拒绝应征。县令用鞭子抽他被他当场杀死,跑到窦建德处躲避起来。
官府跟踪到窦家,窦建德劝孙安祖说:“隋文帝在位时天下殷实富有,讨伐高丽都未成功。如今水患成灾百姓贫困,主上不体恤民众,还要发兵东征,我料天下必乱。大丈夫处世当立奇功,岂能只做个俘虏。”于是集结乡里数百名无业流民,让孙安祖带着进入高鸡泊(河北衡水故城县东南)当了强盗。
当时的冀鲁交界,还有县(今山东德州夏津县)张金称、蓨县(今河北衡水景县)高士达在清河聚众为盗。郡县官员怀疑窦建德与他们勾连,把他全家人抓住杀了。窦建德率领麾下两百余人投奔了高士达。
没多久,孙安祖在盗匪火拼中被张金称所杀,所部全都归附于窦建德,兵力发展到万余人。窦建德能与士卒同甘共苦,人人都愿替他效命。
大业十二年(616年),隋炀帝派太仆卿杨义臣讨伐张金称,在临清采用疑兵之计击败了张金称,张金称逃往清河被杨善会抓获,将他凌迟处死。
涿郡(河北保定涿州)通守郭绚进击高士达,高士达自认才略不及窦建德,把军队交由他来指挥。窦建德带着七千精兵前往迎战,诈称与高士达闹翻向郭绚请降,并愿做先锋攻打高士达。郭绚信以为真,领兵跟着窦建德到达长河(古县名,在今山东德州东),窦建德趁其不备突然袭击,杀俘数千人,斩下郭绚首级献给高士达。
杨义臣乘胜进至平原县,准备进入高鸡泊(河北衡水故城县东南)讨伐高士达。窦建德对高士达说:“杨义臣善于用兵,如今击灭张金称士气正旺,请您暂且躲避,让他求战不得,待其疲惫再一举消灭,否则您恐怕不是他的对手。”
高士达内心不忿亲率精兵迎战,首战取得小胜,高士达在营中设宴庆贺,窦建德听说后叹道:“高公得意的太早,大祸就要临头了。”
果不出所料,五天后杨义臣大败高士达,高士达战死,全军溃散,窦建德率百余骑兵逃至饶阳(衡水辖县)。杨义臣认为匪首已死窦建德不值一提,撤军返回。