荀攸字公达,荀彧的侄子。荀攸的祖父荀昙,曾任广陵太守。荀攸年少时死了父亲。荀昙死后,荀昙的故友张权请求为荀昙看守墓地。这年荀攸十三岁,怀疑张权,对叔父荀衢说:“这人脸色不正,恐怕有隐私!”荀衢醒悟了,于是追查审问,张权果然是杀人在逃犯。从此人们对荀攸另眼相待。何进*,征召国内知名人士荀攸等二十多人。荀攸被授官黄门侍郎。
董卓*后,关东起兵,董卓迁都长安。荀攸与议郎郑泰、何..、侍中种辑、越骑校尉伍琼等人商议说:“董卓不守信义,比夏桀、商纣还残暴,天下人都怨恨他,虽然他拥有强大的兵力,实际上不过是一介匹夫而已。现在我们干脆杀了他以通告百姓,然后占据崤山、函谷关,辅佐君王,以向全国发号施令,这正是当年齐桓公、晋文公的作法。”事情将成时被发觉,何..、荀攸被捕关在狱中,何..忧虑恐惧,自杀身亡;荀攸饮食、言谈自若,适逢董卓死,幸免一死。弃官返归,又被官府征召,考试名列优等,升迁为任城相,没有赴任。荀攸因蜀汉地险城坚,人民生活殷实,于是请求担任蜀郡太守,因道路不通,停驻在荆州。太祖奉迎天子到许县建都,给荀攸写信说:“现今天下大乱,正是有谋之士费心劳神的时候,而您却在蜀汉静观时局变化,不是太保守了吗?”于是征召荀攸为汝南郡太守,入京任尚书。太祖素来知道荀攸的名声,与他一交谈,十分高兴,对荀彧和钟繇说:“公达不是平庸之人,我能够与他谋事,天下事没有什么可忧虑的!”让他作了军师。
建安三年(198),荀攸随太祖征讨张绣。荀攸对太祖说:“张绣与刘表互相援助,力量强大,但张绣是流动部队,食物要靠刘表供给,刘表无力供给他时,双方势必背离。我们不如暂停进军等待一下,这样可以诱之前来;如果急于进攻,他们势必互相救援。”太祖不听,终于进军,到了穰县,与张绣交战。张绣告急,刘表果然来救。太祖军作战不利。于是太祖对荀攸说:“都是不听您的建议造成的啊!”随即设置奇兵再次交战,大败张绣。这一年,太祖从宛县发兵征讨吕布,到了下邳,吕布败退,坚守那里,太祖进攻,没有拿下,连续作战,士兵疲惫,太祖想收兵。荀攸和郭嘉劝说:“吕布勇而无谋,现在三次交战都败了,他的锐气已经衰落。军队以大将为核心,首领衰疲,部队就没有奋战的意志了。那个陈宫有谋却来得慢,现在趁着吕布锐气还未恢复,陈宫谋划还未确定,我们进兵,急速攻打,吕布就可以被拿下。”随即引来沂水、泗水灌进城去,城被攻破,活捉了吕布。荀攸后来随太祖在白马救援刘延,设计斩了颜良,详见本书《武帝纪》。太祖攻下白马城后返回,命令运军用物资沿黄河向西进军。袁绍渡过河来追赶,仓猝间与太祖相遇。曹军众将领有些恐慌,劝太祖退回坚守军营。荀攸说:“这些东西正是用来诱捕敌人的,我们为什么要退呢?”太祖和荀攸相视而笑。于是让将士们将军械粮食装备等丢在路上引诱贼兵,贼兵争抢东西,阵势大乱。太祖随即派步兵和骑兵攻击,大败袁军,斩了他的骑兵将领文丑,太祖于是和袁绍在官渡形成对峙局势。双方军粮将尽,荀攸对太祖进言说:“袁绍运粮车一天之内将要到达,押车将领韩荀大精干但轻敌,攻击他可以获胜。”太祖说:“谁可以派遣?”荀攸说:“徐晃。”于是派徐晃及史涣半路截击,打败了韩荀大,烧了他押送的军用物资。适逢许攸前来投降,说袁绍派淳于琼等人率一万多士兵押运粮食,将领骄恣,士兵懈怠,可以中途截击。众人都怀疑他,只有荀攸和贾诩劝说太祖听从。太祖于是留下荀攸和曹洪守营,自己率军进攻打败了袁军,全部斩杀了淳于琼等人。袁绍的大将张..、高览等人烧掉进攻用的器具,投降了曹军,袁绍只得丢弃部队逃。张..前来投降时,曹洪怀疑他,不敢接受,荀攸对曹洪说:“张..有谋而不被袁绍采用,一怒之下前来投奔,您怀疑他什么呢?”这才接受了张..等人。
建安七年(202),荀攸随太祖到黎阳讨伐袁谭、袁尚。第二年,太祖正在征讨刘表时,袁谭、袁尚又争夺冀州。袁谭派辛毗来降并请求救援,太祖想答应,就这件事询问部下。众人大多认为刘表强大,应先平定他,袁谭、袁尚不值得担忧。荀攸说:“天下正值多事之秋,而刘表却稳守江、汉之间地区,他没有吞并四方的志向不问而知。袁氏占据四个州的地盘,有甲兵十万,袁绍凭宽厚得到众心,假使他的两个儿子和睦相处,保守他们的既成功业,那么天下的灾难就不会停息,现在袁氏兄弟交恶,结果不会是双方都得到保全。二袁如果合作,力量就会强大,那时就不易谋取了。趁他们内讧谋取他们,天下就平定了,这个机会不能失啊!”太祖说:“正确。”于是答应与袁谭结亲,随即派兵击败袁尚。这以后袁谭背叛,荀攸又随从太祖在南皮斩杀袁谭。冀州平定,太祖上奏为荀攸请求封爵说:“军师荀攸,从开始就辅佐臣下,没有哪次出兵没有跟从,前后多次战胜敌人,都是靠荀攸的谋划。”于是封荀攸为陵树亭侯。
建安十二年(207),颁布命令大行论功行赏,太祖说:“忠诚正直缜密谋划,安抚内外人心,功归于文若。其次便是公达。”给荀攸增加封邑四百户,连同以前的共七百户,转任中军师。魏国刚建立时,荀攸任尚书令。荀攸多谋深算,心思缜密,明智而能保守机密,自从随太祖四处征战,常常运筹帷幄,当时很少有人知道他说了些什么。太祖每每称赞他说:“公达外愚内智,外怯内勇,外弱内强;不炫耀自己的长处,不夸大自己的功劳;他的内智别人可以达到,他的外愚别人却达不到,即使是颜子、宁武也赶不上他。”文帝在东宫做太子时,太祖对他说:“荀公达,是人之表率,你应尽到礼节尊敬他。”荀攸曾经生病,太子前去慰问,独自在床下礼拜,他受到特别尊敬就是这样。荀攸与钟繇友善,钟繇说:“我每次有所行动,都反复思考,自以为没有什么要变动的了;但拿去一问公达,他的答复总是超出我的意料。”公达前后共筹划奇策十二条,只有钟繇知道。钟繇把它们撰编成册,未完成,就去世了,所以世间不全知它们的内容。荀攸在随从太祖征讨孙权时,中途去世。太祖说起他来就流泪。荀攸的大儿子荀缉,有荀攸的风范,但死得早。由二儿子荀适继承爵位。荀适无子,荀攸绝了后代。
黄初年间(220~226),续封荀攸的孙子荀彪为陵树亭侯,封邑三百户,后又改封为丘阳亭侯。
正始时期(240~248),追谥荀攸为敬侯。