武德四年(621年)二月,李世民又進駐青城宮,營壘尚未建立,王世充的軍隊二萬人從方諸門面臨谷水扎陣。李世民以精銳騎兵在北邙山扎陣,令屈突通率五千步兵渡水攻擊王世充,并趁機告誡屈突通道:“等到雙方交戰(zhàn)時就放煙,我當(dāng)率騎兵南下。”雙方軍隊才接戰(zhàn),李世民用騎兵沖鋒,自己挺身沖鋒在前,與屈突通里外呼應(yīng)。敵軍拼死作戰(zhàn),多次被打散又多次聚合。 [27] 從早晨一直戰(zhàn)到下午,敵軍才開始退卻。李世民指揮兵士追擊,俘獲、斬首共八千人,于是進兵屯營到城下。王世充不敢再出戰(zhàn),只是環(huán)城自守,以等待竇建德救援。李世民派遣諸軍挖掘壕溝,環(huán)繞布置長期圍守。吳王杜伏威派遣他的大將陳正通、徐召宗率精兵二千人前來在李世民軍營會合。偽鄭州司馬沈悅以虎牢關(guān)來投降,將軍王君廓響應(yīng),活捉偽荊王王行本。 [28]
恰巧竇建德率兵十余萬來援救王世充,到達(dá)酸棗。蕭瑀、屈突通、封德彝都因為腹背受敵,恐不是萬全之策,請求退師到谷州觀看形勢。李世民道:“王世充糧食已盡,內(nèi)外離心,我軍不需攻擊,可以坐收敵軍破敗之功。竇建德新近攻破孟海公,將官驕傲士兵怠惰,我軍當(dāng)進攻占據(jù)武關(guān),扼守山川要沖。敵軍假若與我軍爭勝負(fù),我攻破敵軍是必然的了。如果不戰(zhàn),十日之間王世充當(dāng)會自我崩潰。若不急速進攻,敵軍進入武牢,諸城剛剛歸附,必定不能堅守。他們兩方力量合并,還能把他們怎么辦呢?”屈突通又請求解圍到險要之處以等候敵軍內(nèi)部生變,李世民不同意。于是留屈突通輔助齊王李元吉以包圍王世充,李世民親自率領(lǐng)騎兵三千五百人奔赴武牢。 [29]
竇建德從滎陽西上,筑營壘在板渚,李世民駐軍在武牢,兩軍對峙二十多天。探聽消息的人報告道:“竇建德探聽到我軍牲畜的飼料已盡,等候在黃河北岸放馬吃草時,趁機偷襲武牢。”李世民知道他們的陰謀,于是放馬在黃河北岸吃草來誘敵。早晨,竇建德果然率全部兵馬到來,陳列軍隊在汜水之上,王世充大將郭士衡扎陣在南面,綿延數(shù)里,大聲吶喊,諸將大為恐懼。 [30] 李世民率幾名騎兵登上高高的土丘遙望敵軍,對諸將道:“賊人起兵山東,沒有遇見過強大的敵人?,F(xiàn)在渡過險要之處而叫囂,這是沒有政令的表現(xiàn);逼近城墻扎陣,有輕視我們的思想。我按兵不出,敵軍氣勢便衰竭,扎陣太久士卒饑餓,必將自我撤退,這時再來追擊,可以無往而不勝。我與你們約定,必定在午時以后攻破敵軍?!备]建德排出陣勢,從上午直到下午,兵士又餓又累,都坐在陣列中,又爭著飲水,頃刻間又收斂退卻。李世民道:“可以攻擊了!”親自率領(lǐng)輕裝的騎兵追擊引誘敵軍,大軍陸續(xù)趕到。 [31] 竇建德回軍扎陣,還來不及整頓陣列,李世民已先行攻擊,攻擊所向,敵軍紛紛潰散。不久,眾軍會合作戰(zhàn),塵土飛揚,呼叫四起。李世民率史大奈、程咬金、秦叔寶、宇文歆等揮動大旗沖入,直接突入到陣后,張掛軍旗。敵人回頭看見官軍旗幟,全軍崩潰。追逐攻打三十里,斬首級三千多,俘虜賊眾五萬,在陣中活捉竇建德。