雖然關羽先出發,但到達白馬還需要一些時候,大唐派往陳留的使者在關羽剛過官渡的時候就找到了曹操。曹操也早聽說官渡被張遼占了,正在調兵遣將,使者到達的時候已經準備停當,立刻就開拔了十萬軍隊去打官渡。
曹操派往官渡的是夏侯惇和夏侯淵兄弟,軍師則派了荀攸。看看大軍將到官渡,荀攸建議速戰速決。因為目前白馬的戰事還沒有結果,陳留和濮陽都告急,根據查探的消息,攻占官渡的隻是兩萬並州騎兵,在攻打官渡的時候還折損了三千,事實上現在也就一萬七千人。扣除把守渡口的人手,最多隻有一萬可以出擊。如果速戰速決,奪回官渡,就能形成在官渡與河北軍對峙之勢,憑險固守,專待朝廷援軍。另外探馬來報,河北軍侯成宋憲魏續等領大軍二十萬正在增援官渡。一旦遷延日久,再想奪回官渡,就千難萬難了。現在河北軍占據官渡,不但直接威脅陳留,還可以長驅虎牢關,威脅到洛陽的防禦了。
所以荀攸針對官渡守軍都是騎兵的特點,撥兩萬騎兵帶盾牌在前,兩萬弓箭兵隨後,一字排開,直奔官渡而來。
張遼打聽曹軍到來,了解了曹軍的布陣,迅速做了安排。將一萬七千騎兵分成四部,四千在左埋伏,四千在右埋伏,四千帶大盾守於營前,其他的在營中固守。
曹軍到時,見張遼在營前列陣,夏侯惇正欲衝鋒,已被荀攸攔住。原來荀攸見營前隻有四千騎兵,心中疑惑,立時變陣。撥五千騎兵和五千弓箭兵震懾左路,又撥五千騎兵和弓箭兵震懾右路,專防伏兵。
張遼見他不上當,心中暗歎對方必有高人,思想之下,隻得跟著變陣。從營中派出一千騎兵在左,一千騎兵在右,都以錐形陣法,衝擊曹軍兩翼,又將營前騎兵分出一千,同樣以錐形陣法衝陣。
先時張遼曾是高順部下,自然也學了陷陣營之法。部下一萬七千騎兵,都是陷陣營精騎,此番衝陣,雖然曹軍陣後一萬弓箭兵飛蝗如雨,也隻能射得數十名騎兵。眼看三千騎兵突入曹軍陣中,將曹軍衝為四股。
荀攸冷笑一聲,一邊命步兵向衝陣騎兵迂回,伺機包圍,一邊命弓箭兵退後。
張遼這邊,三千騎兵殺入敵陣之後,卻並不各自掩殺,中間剩下的九百多名騎兵分為兩隊,一隊向左,一隊向右,與兩翼殺入的騎兵合力攻擊中間兩股各約五千的曹軍騎兵。
平原之上,本利於騎兵廝殺,但曹軍騎兵被動受攻,現在又被對方騎兵變相包圍,雖然人多,卻苦於移動不利,一時間竟陷於混亂。
張遼此時再不遲疑,營中再出騎兵兩千,分兩路一路向左,一路向右,往曹軍左右兩邊衝去。曹軍步兵剛剛調到兩翼,正在迂回,碰到這兩千如狼似虎的騎兵,一觸即潰,急急奔逃。荀攸傳令死命敵住,夏侯惇和夏侯淵又各帶領五千騎兵過來抵擋,方才穩住陣形。
如此一番混亂,早先衝出的三千騎兵在繼續付出五百人的代價之後竟然殲滅了曹軍七千騎兵。
張遼此時已知此戰關鍵便在中央剩下的曹軍三千騎兵頭上,再不遲疑,將原在營前列陣的三千騎兵中再派出一千,掃滅三千殘敵。
荀攸何等之人,張遼一動,心中便已了然。見張遼已經出動八千兵力,料定張遼再無埋伏,急急將先前防禦兩翼各五千騎兵調往中路。總算趕在中央三千騎兵全軍覆沒之前擋住了正麵之敵。
此刻的形勢是,夏侯惇帶領五千騎兵在左路擋住河北軍一千騎兵,夏侯淵帶領五千騎兵在右路擋住河北軍一千騎兵,中央是曹軍一萬騎兵,正在會合,擋住河北軍總計三千騎兵。曹軍雖折損了一萬人,目前形勢卻對曹軍有利。
事已至此,張遼一邊佩服對方高人,一邊開始為最後之戰做準備。此刻他破釜沉舟,索性將營中剩下的一千多騎兵分成兩隊,全力攻向右翼,即曹軍夏侯惇所在之處。張遼又親領營前剩餘兩千中的一千騎兵,同時向夏侯惇殺去。而此前在中路的三千騎兵中,留下兩千繼續抵擋中路之敵,另外一千也奮力殺向夏侯惇。