张金称认为义臣是怯战之人,无谋之辈,就有点松懈。杨义臣看他懈弛,就暗中吩咐周宇、候乔二将,每人带领两千精锐马骑,趁着天黑从馆陶渡过河去埋伏,等张金称的人马离开营寨,快到营前的时候,杨义臣亲自披挂,引兵相迎,只等放起号炮,一齐夹攻。张金称看见官军队伍不整,阵法无序,带领人马直冲过来,两军相接,混战起来。没过多长时间,只听一声炮响,东西两边伏兵一起出动,把贼兵从中间截断,前后夹攻,贼兵大败。张金称单人单马逃奔清河界口,正好遇到清河郡丞杨善,领兵捕贼,在汾口这个地方擒住了张金称,当时就把他杀了,让人将首级送到义臣营中。张金称手下的残兵败将,连夜投奔窦建德去了。义臣把贼营内的金银财物马匹,全部赏给了士卒,俘获的贼人子女,都让放回去了。杨义臣又发兵抵达平原,想进攻高鸡泊,剿杀这里的贼人。
此时窦建德、孙安祖占据高鸡泊,高士达也在这里,早有细作来报,说杨义臣大破张金称,乘胜引兵前来,目前官兵已经到达巫仓,离这里只有二十里地。建德听了大惊,对孙安祖、高士达说道:“我以前就听说杨义臣是文武全才,用兵如神,今日果然杀败张金称,带领得胜之兵,来征伐我们,锐气正胜。士达兄可以暂时领兵把守险要的地方,先避避他们的锐气,让他干等几个月,等到他们粮草不够的时候,然后分兵出击,就可以活捉杨义臣。”士达不听建德之言,仗着自己勇猛,留三千老弱士兵给建德守营,自己同孙安祖乘夜领兵一万,去劫义臣的营寨。想不到杨义臣预先知道了他的意图,已经调兵遣将,四下埋伏。
高士达三更时分,领兵直冲义臣老营。发现是一座空寨,知道中计了,正打算撤退,只听得四下里号炮一齐响起,迎面冲出来一员大将,此人是杨义臣的首将邓有见,邓有见朝着高士达的喉咙就是一箭,士达跌下马来,被邓有见砍了首级,士兵被杀得四散而逃。安祖见士达已死,忙兜转马头朝回奔。建德也赶来救应,无奈隋兵势大,将士伤亡得十有八九。建德与安祖带领着剩下