仓亭之战又称平丘之战,发生在东汉建安六年冬,即公元201年。这是东汉建安五年官渡一战,袁绍在官渡被曹操击败,数十万军队几乎全军覆没之后,曹操和袁绍之间爆发又一次大规模战争。官渡之战后,袁绍势力衰弱,但河北有人口众多。袁绍回到河北后,与儿子袁谭,袁熙,袁尚和侄子会合,开始养精蓄锐,试图再次南下,攻灭曹操。
这场战斗的详细描述只在演义中出现过,《三国志》中没有记载,《资治通鉴》中只提到过寥寥几句。历史学家通常认为这场战斗是虚构的。
经过几个月的准备,袁绍在建安六年冬在于平丘渡河,意图经平丘渡过黄河,进攻陈留,然后由陈留攻许昌,曹操谋士郭嘉准确判断袁绍军的意图,于是建议曹操应主动北上迎击袁绍,双方在仓亭相遇,但是袁绍吸取了上一次官渡一战的教训,采取了循序渐进的方式,不急于进攻,而是慢慢逼近曹操,寻找有利的战机。 曹操渴望速战速决,为此焦头烂额。此时,谋士程昱献十面埋伏之计,于是曹操主动退守黄河,而许褚则引诱袁军前来进攻。由于曹操,的背水一战,他的士兵在多是精锐,所以袁军再次被打败。当袁绍被打败时,十支伏兵依次杀出。袁军开始权限崩溃,至此,曹操再次击败了袁绍,完全击散了袁绍的力量。
书中写的程昱献计划实际上是韩信“回水阵”和“十面埋伏”的融合。韩信,实际上是一种赌博,假装不懂兵法来诱使对方进攻。最后以奇兵奇袭赢得了最后的胜利,让对方恐惧。然而,仓亭战争期间曹军的局势完全不符合这种情况。
曹军的处境很好,乘胜而来。袁军上下人心离散,主要的精英在官渡被歼灭。大多数在袁绍作战的士兵是再籍之兵,他们缺乏训练和实战能力。没必要背水弄险,自己挖坑。而且,袁绍很了解曹操,曹操无论如何也不能装作不懂兵法,所以背水为阵显然不合适。
所以这种战术本身就有漏洞,也不可能让擅长军事指挥的曹操纳谏,所以这一战很可能是作者虚构出来,也因此这一战在历史上并不出名。