荀彧出身颍川荀氏,荀子之后。其祖父荀淑知名当世,号为神君。荀淑有八子,号称八龙。荀彧的父亲荀绲曾任济南相,叔父荀爽曾任司空。荀绲忌惮宦官,于是让荀彧娶中常侍唐衡的女儿为妻。因为荀彧年少时有才名,才得以免于别人的讥议。后来南阳名士何颙见到荀彧,大为惊异,说道:“这是王佐之才啊!”永汉元年(189年),被举孝廉,任守宫令(掌管皇帝的笔、墨、纸张等物品)。九月,董卓废少帝刘辩,立献帝刘协。十一月,董卓自为相国,赞拜不名,入朝不趋,剑履上殿。荀彧弃官归乡。对父老说:“颍川是四战之地,如果天下有变,那就会经常受到侵略,应该早离去,不能久留。”但乡人们多怀恋故土,不愿离去。时冀州牧同郡韩馥派人接荀彧,却无人相随。荀彧只得独自将宗族迁至冀州避难。到冀州后,冀州已为袁绍所得,袁绍见荀彧来,待之为上宾。荀彧弟荀谌和同郡辛评、郭图都在袁绍手下。荀彧却认为袁绍最终不能成大事。初平二年(191年),荀彧离袁绍而投曹操。曹操见荀彧来投,大悦,说:“这是我的子房啊!”于是任荀彧为别部司马,荀彧时年二十九岁。当时董卓威陵天下,曹操问计于荀彧,荀彧说:“董卓残暴已经超出常理,一定会因祸乱暴弊,不会有什么作为的。”后董卓派李傕等出关东,虏略各地,至颍川、陈留而归。荀彧乡人多数死于战乱。初平三年(192年),曹操领兖州牧,后为镇东将军。荀彧则以司马身份随其征战。兴平元年(194年),曹操东征徐州牧陶谦,张邈、陈宫乘机在兖州反曹,暗中迎接吕布。时荀彧和寿张令程昱守鄄城(今山东鄄城北,兖州治所),吕布到后,张邈派刘翊告诉荀彧:“吕将军来帮助曹使君进攻陶谦,应该马上供给他们军备粮食。”众人疑惑,唯荀彧知其计,立即命令军队加强防,并急召东郡太守夏侯惇。而兖州诸城皆响应张邈,投靠吕布阵营。当时曹操率大军出征,留守的兵力很少,而且很多人都与张邈、陈宫勾结。夏侯惇到后,乘夜诛杀谋反者数十人,军心乃安。豫州刺史郭贡受吕布煽动,率众数万来攻,军中甚惧。郭贡要求见荀彧,荀彧准备前往,夏侯惇等人说:“您是一州的屏障,如果前往一定会有危险的,不可以去。”荀彧说:“郭贡与张邈他们,平素并没有什么往来,现在来得急,计划肯定还没有定下;现在趁他计策未定来游说,就算不能帮助我们,也可以使他保持中立,如果先怀疑,那他就会恼怒而定计了。”于是出城会见郭贡,郭贡见荀彧毫无惧意,认为鄄城易守难攻,引兵而去。荀彧又与程昱定计,保全了范、东阿。卒全三城。不久,曹操回师濮阳击败了吕布。兴平二年(195年)正月,曹操击败侵入定陶(今山东定陶西北)的吕布军。五月,曹操向驻军巨野(今山东巨野东北)的吕布部将薛兰、李封发动攻击,吕布亲自援救,被曹操击败,撤退而走。曹操歼灭巨野守军,斩薛兰、李封,乘胜进驻乘氏(今山东巨野西南)。此时,陶谦已死,曹操获悉后,打算趁机夺取徐州,再回军消灭吕布。荀彧劝阻说:“当年汉高祖保守关东,光武帝占据河内,都是先巩固基地以控制天下,这样进可以制胜,退可以固守,所以虽有困难曲折却最终能完成大业。将军本来是凭兖州起事,平定山东祸乱,百姓无不心悦诚服。况且兖州跨黄河、济水,是天下要冲,现虽残破,但还可以自保,此地就是将军您的关中、河内,不得不先稳定它。如今我们已击溃了李封、薛兰,如果分兵东击陈宫,陈宫必定不敢西顾,我们趁机组织队伍收割麦子,节约粮食,储备谷物,就可以一举打垮吕布。然后向南联合扬州的刘繇,共讨袁术,以控制淮水、泗水一带。如果舍弃吕布不打而东攻徐州,多留守兵则攻城不够,少留守兵就会征百姓也来守城,不能打柴拾草。吕布乘机侵扰杀掠,民心将更恐惧,只有鄄城、范、卫三处可以保全,其余的地方都不为我们所有,这样就等于失去了兖州。要是徐州攻不下,将军将安身于何处?何况陶谦虽死,徐州也不易攻破。徐州已鉴于往年的失败,将会因畏惧而紧密联合,内外相应。现东方都已收麦,必会坚壁清野以防将军;将军久攻不下,抢掠又无收获,不出十天,十万人马尚未开战自己先已困乏了。上次讨伐徐州,实行了以暴力相惩罚,徐州子弟想到父兄被杀的耻辱,必定会誓死奋战,没有投降之心,即使能攻下徐州,还是不能占有它。天下确实有舍这取那的事,以大换小,是可以的,以平安换危险,也是可以的;权衡一时的形势,不顾忌根基不稳固,一样是可以的。现今三者无一有利,希望将军对这种情况细细权衡。”曹操采纳荀彧的意见,放弃进攻徐州的企图。抓紧战机,收割熟麦,储存粮秣,积蓄实力。不久,曹操大败吕布,吕布连夜弃营撤往徐州。曹操乘胜攻取定陶城,并分别派出部队收复兖州各县,兖州遂平。此战的获胜,对曹操以后统一北方,成就大业,具有重要的意义,荀彧功不可没。建安元年(196年),随曹操击败黄巾军。七月,汉献帝刘协在杨奉、董承等护卫下,从长安(今陕西西安西北)返回洛阳(今河南洛阳东北)。在要不要奉迎天子建都许县的问题上,曹军内部发生了争执。多数人不同意迎接献帝,理由是徐州还未平定,韩暹、杨奉刚刚将天子迎到洛阳,往北连结张杨,暂时还不能控制他们。荀彧则对曹操说:“从前晋文公迎周襄王返回而诸侯服从,汉高祖东征项羽,为义帝穿素服发丧而天下归心。自从天子蒙乱,将军您首先倡导义兵勤王,只是因为山东地区纷扰战乱,还不能远赴关右,但还是分派将领,冒险与朝廷通使节,虽挽救国难于朝廷之外,而心无时不系于王室,这是将军诚扶天下的一贯志向。诚因此时奉主上以从人望,大顺也;秉至公以服雄杰,大略也;扶弘义以致英俊,大德也。天下虽有逆节,不能为累,明矣。韩暹、杨奉怎么敢为害呢?如不及时扶正朝廷,天下将生叛离之心,以后即使考虑此事,也来不及了。”曹操认为荀彧之言有理,遂应安集将军董承的秘密召请,亲率大军进抵洛阳,被任命为司隶校尉,奉迎献帝迁都许县(今河南许昌东)。曹操被封为大将军、武平侯,荀彧也升为汉侍中,守尚书令。从此造成曹操奉天子以令诸侯的战略优势,并为其此后统一战争(参见曹操统一北方的战争)的顺利实施,奠定了基础。荀彧很少随军出征,而是“居中持重”,曹操虽然在外征战,但军国之事都由荀彧调度筹划。曹操问荀彧:“谁能代卿为我谋者?”荀彧说:“荀攸(荀彧侄)、钟繇”。荀彧善于举荐人才,起初举荐了戏志才,戏志才死后又举荐了郭嘉。此外,还举荐了陈群、杜畿、司马懿等人,都是当时名士,只有严象和韦康后来因为失败丧命。自曹操迎奉汉献帝后,引起了袁绍的不满。时袁绍雄居北方。曹操则东忧吕布,南拒张绣。建安二年(197年)正月,曹操南征张绣,大败而归。袁绍则更加骄矜溢,写信给曹操,辞语骄慢。曹操阅后大怒,诸将都认为是败于张绣的缘故。钟繇因此问荀彧,荀彧说:“以曹公的明智,一定既往不咎,还有什么好忧虑的。”见到曹操后,曹操将袁绍书信让荀彧观看,说:“现在准备讨伐不义,但力量无法与之匹敌,该怎么办?”荀彧说:“自古以来较量于成败场上的,如果真有才能,纵然弱小,也必将变得强盛;如果是庸人,纵然强大,也会变得弱小。刘邦、项羽的存亡,足以可以使人明白这个道理。现今与您争天下的人,只有袁绍了。袁绍这人貌似宽容而内心狭窄,任用人才却疑心太重,您明正通达,不拘小节,唯才是举,唯才是用,这在度量上胜过袁绍;袁绍遇事迟疑犹豫,少有决断,往往错过良机,您却能决断大事,随机应变,不拘成规,这在谋略上胜过袁绍;袁绍军纪不严,法令不能确立,士兵虽多,却不能巧为任用,您法令严明,赏罚必行,士兵虽少,却都奋战效死,这在用兵上胜过袁绍;袁绍凭其名门贵族,装模作样,耍小技而博取名誉,所以士人中缺乏才能而喜好虚名者大多归附于他,您以仁爱之心待人,推诚相见,不求虚荣,行为谨严克己,而在奖励有功之人时无所吝惜,因此天下忠诚正直、讲求实效的士人都愿为您效劳,这在德行上胜过袁绍。凭借这四方面的优势辅佐天子,扶持正义,征伐叛逆,谁敢不从?袁绍强大又有何用?”曹操听后非常高兴,荀彧还说:“如果不先取吕布,那河北也不容易图谋。”曹操说:“诚如您所说。但我所忧虑的,是又怕袁绍侵扰关中,引发羌、胡叛乱,向南引诱刘璋,那样的话我就要用兖州、豫州来对抗天下的六分之五了。那该怎么办呢?”荀彧说:“关中将帅数以千计,没有人能统一起来,只有韩遂、马超最强。他们见崤山以东地区正在争战,必定各自拥兵自保。现在如果以恩德招抚他们,派遣使者与他们通好,即使不能长久安定,但至少在您平定山东之前,足以不生变动。关西的事情可以托付给钟繇,这样您就可以放心出征了。”