写信给荀彧,准备退守许昌。荀彧回信说:“今军食虽少,未若楚、汉在荥阳、成皋间也。是时刘、项莫肯先退,先退者势屈也。公以十分居一之众,画地而守之,扼其喉而不得进,已半年矣。情见势竭,必将有变,此用奇之时,不可失也”(《三国志·魏书·荀彧传》)。曹操采纳其建议,继续坚守待机。不久,许攸家人犯法入狱,许攸怒而投奔曹操,献计偷袭乌巢。曹操遂以奇兵袭乌巢(参见乌巢之战),斩淳于琼等人,歼灭袁军7万余人,袁绍仅带800骑兵渡河北逃,从此一蹶不振。曹操最终取得这场战略决战的胜利,奠定了统一中国北方的基础。
而“审配以许攸家不法,收其妻子,攸怒叛绍;颜良、文丑临阵授首;田丰以谏见诛”等,和荀彧所预见的完全一样。
曹操取得官渡之战胜利,袁绍败退北走,遣军屯于仓亭(今山东阳谷境)。建安六年(201)三月,曹操欲南击曾与袁绍结盟的荆州刘表。荀彧认为:“今绍败,其众离心,宜乘其困,遂定之;而背兖、豫,远师江、汉,若绍收其余烬,承虚以出人后,则公事去矣”(《三国志·魏书·荀彧传》)。曹操纳其计,遂于四月挥军北进,扬兵于黄河之上;对驻守仓亭的袁绍军发起攻击,一举歼灭仓亭袁军。至此,袁绍主力丧失殆尽。九月,曹操班师返许(今河南许昌东)。次年(202)五月,袁绍因兵败惭愤,呕血而亡。
建安八年(203),曹操上表,封荀彧为万岁亭侯。正在担任尚书令的荀彧看到了曹操的表文。他非常谦虚,认为自己没有战功,把表压了下来。因此,曹操又写信给他说:“同你共事以来,你帮着纠谬辅政,荐举人才,提出计策,周密谋划,做得已很多了。立功不一定都靠作战,希望你不要推让。”荀彧这才接受万岁亭(在今河南新郑县内)侯的封爵。
建安九年(204),曹操攻克邺城,领冀州牧。有人对曹操说:“宜复古置九州,则冀州所制者广大,天下服矣。”曹操将要从之,荀彧却反对说:“若是,则冀州当得河东、冯翊、扶风、西河、幽、并之地,所夺者众。前日公破袁尚,擒审配,海内震骇。必人人自恐不得保其土地,守其兵众也;今使分属冀州,将皆动心。且人多说关右诸将以闭关之计;今闻此,以为必以次见夺。若一旦生变,虽有守善者,转相胁为非,则袁尚得宽其死,而袁谭怀贰,刘表遂保江、汉之间,天下未易图也。愿公急引兵先定河北,然后修复旧京,南临荆州,责贡之不入,则天下咸知公意,人人自安。天下大定,乃议古制,此社稷长久之利也”(《三