弃官返归,又被官府征召,考试名列优等,升迁为任城相,没有赴任。
荀攸因蜀汉地险城坚,人民生活殷实,于是请求担任蜀郡太守,因道路不通,停驻在荆州。
建安元年,曹操迎汉献帝至许县建都,给荀攸写信说:“现今天下大乱,正是有谋之士费心劳神的时候,而先生却在蜀汉静观时局变化,不是太保守了吗?”
于是征召荀攸为汝南太守,入为尚书。
曹操久闻荀攸之名,与语大悦,对荀彧、钟繇说:“公达不是平常的人,我能够和他一同商议大事,怎么还会忧虑得不到天下呢?”
自此,荀攸成为了曹操的军师。
建安三年,荀攸随曹操征讨张绣。
荀攸看出当时的形势对曹操很不利,就对曹操说:“张绣与刘表联合,互为犄角之势,但是张绣人马靠刘表供给,时间一久,刘表力不能支,必然与张绣分裂。我不如缓兵以待其变;若急切进攻,刘表必拼死相救。”
曹操没听劝告,出兵对张绣作战,刘表果然发兵相救,曹军失利。
曹操对荀攸说:“没有听先生的话才会这样。”
于是设下奇兵再次和张绣、刘表联军大战,大破之。
同年,曹操自宛征讨吕布,到了下邳,吕布败退,固守城池,曹操进攻,没有拿下,连续作战,士兵疲惫,曹操想收兵撤退。
荀攸与郭嘉说曰:吕布勇而无谋,如今三次交战都败了,他的锐气已经衰落。
三军以大将为核心,大将衰疲,部队就没有奋战的意志。
就算陈宫有计谋也太迟了,现在吕布士气尚未恢复,陈宫的计谋尚未定夺,乘此机会奋进急攻,就可以击破吕布了。
曹操随即引沂水、泗水灌进城去,攻破了下邳,生擒吕布。
建安五年二月,袁绍首先派大将颜良围攻白马(今河南滑县东)。
四月,曹操亲自率军北上救白马之围。
当部队正向前开进时,荀攸认为不能与实力悬殊的强大敌人正面对抗,他分析了当时的形势提出了声东击西、解救白马的作战方略。
他认为袁绍兵多,应设法分散其兵力,于是劝曹操引兵先到延津,伪装渡河攻袁绍后方,使袁绍分兵向西应战,然后再派轻骑袭击进攻白马的袁军,攻其不备,一定可以打败颜良。
曹操听了他的这一番话,觉得十分有道理,就依计而行,袁绍果然分兵延津。
曹操乘机率轻骑袭击白马,颜良不及防备,被关羽斩杀。
曹操解白马之围后,率六百骑兵押送粮草辎重沿河西退。
军行不久,与袁绍五六千追兵相遇。
诸将见敌众我寡,都感到很害怕,劝曹操退守大营,荀攸知道敌人的弱点,就说:“这正是歼敌的好时机,为何要退呢?”
曹操与荀攸对视而笑,心意相通,于是命令士兵解鞍放马,丢弃辎重,引诱袁军;
待袁军逼近,争抢辎重的时候,曹操突然命令上马,迅猛发起攻击,大破袁军,斩杀骑将文丑。
曹操于是和袁绍在官渡形成对峙局势。
双方军粮将尽,荀攸对曹操进言说:“袁绍运粮车一天之内将要到达,押车将领韩猛精干但轻敌,攻击他可以获胜。”
曹操说:“谁可以派遣?”
荀攸说:“徐晃。”
于是派徐晃及史涣半路截击,打败了韩猛,烧了他押送的军用物资。
适逢许攸前来投降,说袁绍派淳于琼等人率一万多士兵押运粮食,将领骄恣,士兵懈怠,可以中途截击。
众人都怀疑他,只有荀攸和贾诩劝说曹操听从。
曹操于是留下荀攸和曹洪守营,自己率军进攻打败了袁军,斩杀了淳于琼等人。
袁绍的大将张郃、高览等人烧掉进攻用的器具,投降了曹军,袁绍只得弃军逃回黄河以北。
张郃前来投降时,曹洪怀疑他,不敢接受,荀攸对曹洪说:“张郃的计谋不被袁绍采用,一怒之下前来投奔,您怀疑他什么呢?”
曹洪这才接受了张郃等的投降。
建安七年,荀攸跟从曹操讨袁谭、袁尚于黎阳。
建安八年,曹操刚刚前往征讨刘表,袁谭、袁尚争冀州。
袁谭遣辛毗请降求救,曹操许之,问部将。部将多认为刘表强,应先攻之,袁谭、袁尚不足为虑。
荀攸说:天下正值多事之秋,而刘表却稳守江、汉之间