曹操以一万兵力战胜袁绍十万人马,在小说家看来亦有悖常理。《三国演义》给出的双方总兵力尽管也是这个比例,却将员额都增至七倍:曹军为七万,袁军为七十万。但关键是,小说中袁军并未将所有的兵力都投入官渡战场。第三十回写到袁军部署:
袁绍移军逼近官渡下寨。审配曰:“今可拨十万守官渡,就曹操寨前筑起土山,令军人下视寨中放箭……”绍从之。
七十万大军何以只用十万守官渡?其余六十万干吗去了?小说未予明说。但是,小说家知道一比十的配置没法搞阵地战,以曹军七万对付人家十万还说得过去,因而不得不修正《三国志》的悬殊比例。小说家讲史不能没有现实感,史家讲故事倒是直奔革命浪漫主义。
曹操之所以能于官渡胜出,按武纪、袁传之说,主要是断了袁军的粮草。一次是派徐晃等偷袭运粮车(武纪称袁绍运粮车有“数千乘”之多),一次是曹操亲率五千人马攻击转运粮草的乌巢。后一次是许攸的主意,许攸本是袁绍的谋士,因贪贿被究劾,投奔了曹操。袁绍得知乌巢被攻,做出一个错误决策,只派少量骑兵往乌巢救援,却让张郃、高览等主力部队去攻打曹操大营。这大概是搬用“围魏救赵”的战法。但张郃等拔寨不成,闻说淳于琼守卫的乌巢已失,便投降了曹操。于是袁军大溃,袁绍带着袁谭弃军而走。
这也是小说第三十回后半截的故事梗概。小说因为有细节铺垫,读来倒不觉突兀,尤其最后袁军溃败一节处理尚好。裴松之为《魏书·张郃传》作注,参核武纪、袁传,发现一个问题:本传称张郃等降曹是见大势已去,而武纪、袁传说是张郃投降而导致袁军大溃,彼此因果参错。其实,无论孰因孰果,这都过于简率。相比之下,小说叙述多少有些层次:让降曹的张郃、高览往劫袁绍大寨,又扬言攻邺郡、取黎阳,断袁军后路,然后曹军八路齐出……这才使袁军俱无斗志,彻底崩溃。耗费这些笔墨,是弥补史传叙述可信性之缺失。
以粮草定胜负,看似很有道理,其实大谬不然。因为袁军并非小股部队纵深突入,十万大军粮草不可能只囤于乌巢一处。官渡战役战场拉得很开,从白马、延津斜插西南,迤逦二百余里,诸史并未说到袁绍的战争动员能力不足。相反,如《魏书·赵俨传》则谓:“时袁绍举兵南侵,遣使招诱豫州诸郡,诸郡多受其命。”连许昌以南的豫州诸郡都响应袁绍,而近处河内、东郡一带何愁不能解决一时之给养,其十万之众怎么突然就不战而溃?
再看《三国志》和《后汉书》两篇袁传,都说到当地百姓多叛离曹操而倒向袁绍,一曰:“太祖与绍相持日久,百姓疲乏,多叛应绍,军食乏。”一曰:“相持百余日,河南人疲困,多畔应绍。”这就是民心向背,在史家叙述中也完全被忽略了。