却说曹操守官渡,自八月起,至玄月终,兵力渐乏,粮草不继。意欲弃官渡退回许昌,游移未决,乃作书遣人赴许昌问荀彧。彧以书报之。书略曰:“承尊命,使决进退之疑。愚以袁绍悉众聚于官渡,欲与明公决胜负,公乃至弱当至强,若不能制,必为所乘:是天下之大机也。绍军虽众,而不能用;以公之神武明哲,何向而不济!今军实虽少,未若楚、汉在荥阳、成皋间也。公今画地而守,扼其喉而使不能进,情见势竭,必将有变。此用奇之时,断不成失。惟明公裁察焉。”曹操得书大喜,令将士效力死守。
绍军约退三十余里,操遣将出营巡哨。有徐晃部将史涣获得袁军细作,解见徐晃。晃问其军中真假。答曰:“迟早大将韩猛运粮至军前布施,先令我等探路。”徐晃便将此事报知曹操。荀攸曰:“韩猛匹夫之勇耳。若遣一人引轻骑数千,从半路击之,断其粮草,绍军自乱。”操曰:“那个可往?”攸曰:“即遣徐晃可也。”操遂差徐晃将带史涣并所部兵先出,后使张辽、许褚引兵救应。当夜韩猛押粮车数千辆,解赴绍寨。正走之间,山谷内徐晃、史涣引军截住来路。韩猛飞马来战,徐晃接住厮杀。史涣便杀散人夫,放火燃烧粮车。
绍曰:“吾奉衣带诏讨贼!”操怒,使张辽出战。张邰跃马来迎。二将斗了四五十合,不分胜负。曹操见了,悄悄称奇。许褚挥刀纵马,直出助战。高览挺枪接住。四员将捉对儿厮杀。曹操令夏侯惇、曹洪,各引三千军,齐冲彼阵。审配见曹军来冲阵,便令放起号炮:两下万弩并发,中军内弓箭手一齐拥出阵前乱射。曹军如何抵敌,望南急走。袁绍驱兵掩杀,曹军大败,尽退至官渡。袁绍移军逼近官渡下寨。审配曰:“今可拨兵十万守官渡,就曹操寨前筑起土山,令甲士下视寨中放箭。操若弃此而去,吾得此隘口,许昌可破矣。”绍从之,于各寨内选精干甲士,用铁锹土担,齐来曹操寨边,垒土成山。曹营内见袁军堆筑土山,欲待出去抵触,被审配弓弩手当住咽喉要路,不能进步。旬日以内,筑成土山五十余座,上立高橹,分拨弓弩手于其上射箭。曹军大惧,皆顶着遮箭牌守御。土山上一声梆子响处,箭下如雨。曹军皆蒙楯伏地,袁军号令而笑。
曹操以鞭指袁绍曰:“吾于天子之前,保奏你为大将军,今何故谋反?”绍怒曰:“汝托名汉相,实为汉贼!罪过弥天,甚于莽、卓,乃反诬人造反耶!”操曰:“吾今奉诏讨汝!”
曹操见军慌乱,集众谋士问计。刘晔进曰:“可作发石车以破之。”操令晔进车式,连夜造发石车数百乘,漫衍营墙内,正对着土山上云梯。候弓箭手射箭时,营内一齐拽动石车,炮石飞空,往上乱打。人无躲处,弓箭手死者无数。袁军皆号其车为“轰隆车”。由是袁军不敢登高射箭。审配又献一计:令甲士用铁锹暗打隧道,直透曹营内,号为“掘子军“曹兵瞥见袁军于山后掘土坑,报知曹操。操又问计于刘晔。晔曰:此袁军不能攻明而攻暗,发掘伏道,欲从地下透营而入耳。“操曰:何故御之?“晔曰:可绕营掘长堑,则彼伏道无用也。“操连夜差军掘堑。袁军掘伏道到堑边,果不能入,白费兵力。