当时曹操率大军出征,留守的兵力很少,而且很多人都与张邈、陈宫勾结。夏侯惇到后,乘夜诛杀谋反者数十人,军心乃安。豫州刺史郭贡受吕布煽动,率众数万来攻,军中甚惧。郭贡要求见荀彧,荀彧准备前往,夏侯惇等人说:“您是一州的屏障,如果前往一定会有危险的,不可以去。”
荀彧说:“郭贡与张邈他们,平素并没有什么往来,现在来得急,计划肯定还没有定下;现在趁他计策未定来游说,就算不能帮助我们,也可以使他保持中立,如果先怀疑,那他就会恼怒而定计了。”
于是出城会见郭贡,郭贡见荀彧毫无惧意,认为鄄城易守难攻,引兵而去。荀彧又与程昱定计,保全了范、东阿。卒全三城。不久,曹操回师濮阳击败了吕布。兴平二年(195年)正月,曹操击败侵入定陶(今山东定陶西北)的吕布军。五月,曹操向驻军巨野(今山东巨野东北)的吕布部将薛兰、李封发动攻击,吕布亲自援救,被曹操击败,撤退而走。曹操歼灭巨野守军,斩薛兰、李封,乘胜进驻乘氏(今山东巨野西南)。此时,陶谦已死,曹操获悉后,打算趁机夺取徐州,再回军消灭吕布。荀彧劝阻说:“当年汉高祖保守关东,光武帝占据河内,都是先巩固基地以控制天下,这样进可以制胜,退可以固守,所以虽有困难曲折却最终能完成大业。将军本来是凭兖州起事,平定山东祸乱,百姓无不心悦诚服。况且兖州跨黄河、济水,是天下要冲,现虽残破,但还可以自保,此地就是将军您的关中、河内,不得不先稳定它。如今我们已击溃了李封、薛兰,如果分兵东击陈宫,陈宫必定不敢西顾,我们趁机组织队伍收割麦子,节约粮食,储备谷物,就可以一举打垮吕布。然后向南联合扬州的刘繇,共讨袁术,以控制淮水、泗水一带。如果舍弃吕布不打而东攻徐州,多留守兵则攻城不够,少留守兵就会征百姓也来守城,不能打柴拾草。吕布乘机侵扰杀掠,民心将更恐惧,只有鄄城、范、卫三处可以保全,其余的地方都不为我们所有,这样就等于失去了兖州。要是徐州攻不下,将军将安身于何处?何况陶谦虽死,徐州也不易攻破。徐州已鉴于往年的失败,将会因畏惧而紧密联合,内外相应。现东方都已收麦,必会坚壁清野以防将军;将军久攻不下,抢掠又无收获,不出十天,十万人马尚未开战自己先已困乏了。上次讨伐徐州,实行了以暴力相惩罚,徐州子弟想到父兄被杀的耻辱,必定会誓死奋战,没有投降之心,即使能攻下徐州,还是不能占有它。天下确实有舍这取那的事,以大换小,是可以的,以平安换危险,也是可以的;权衡一时的形势,不顾忌根基不稳固,一样是可以的。现今三者无一有利,希望将军对这种情况细细权衡。”
曹操采纳荀彧的意见,放弃进攻徐州的企图。抓紧战机,收割熟麦,储存粮秣,积蓄实力。不久,曹操大败吕布,吕布连夜弃营撤往徐州。曹操乘胜攻取定陶城,并分别派出部队收复兖州各县,兖州遂平。此战的获胜,对曹操以后统一北方,成就大业,具有重要的意义,荀彧功不可没。建安元年(196年),随曹操击败黄巾军。七月,汉献帝刘协在杨奉、董承等护卫下,从长安(今陕西西安西北)返回洛阳(今河南洛阳东北)。在要不要奉迎天子建都许县的问题上,曹军内部发生了争执。多数人不同意迎接献帝,理由是徐州还未平定,韩暹、杨奉刚刚将天子迎到洛阳,往北连结张杨,暂时还不能控制他们。荀彧则对曹操说:“从前晋文公迎周襄王返回而诸侯服从,汉高祖东征项羽,为义帝穿素服发丧而天下归心。自从天子蒙乱,将军您首先倡导义兵勤王,只是因为山东地区纷扰战乱,还不能远赴关右,但还是分派将领,冒险与朝廷通使节,虽挽救国难于朝廷之外,而心无时不系于王室,这是将军诚扶天下的一贯志向。诚因此时奉主上以从人望,大顺也;秉至公以服雄杰,大略也;扶弘义以致英俊,大德也。天下虽有逆节,不能为累,明矣。韩暹、杨奉怎么敢为害呢?如不及时扶正朝廷,天下将生叛离之心,以后即使考虑此事,也来不及了。”
曹操认为荀彧之言有理,遂应安集将军董承的秘密召请,亲率大军进抵洛阳,被任命为司隶校尉,奉迎献帝迁都许县(今河南许昌东)。曹操被封为大将军、武平侯,荀彧也升为汉侍中,守尚书令。从此造成曹操奉天子以令诸侯的战略优势,并为其此后统一战争(参见曹操统一北方的战争)的顺利实施,奠定了基础。荀彧很少随军出征,而是“居中持重”,曹操虽然在外征战,但军国之事都由荀彧调度筹划。曹操问荀彧:“谁能代卿为我谋者?”
荀彧说:“荀攸(荀彧侄)、钟繇”。荀彧善于举荐人才,起初举荐了戏志才,戏志才死后又举荐了郭嘉。此外,还举荐了陈群、杜畿、司马懿等人,都是当时名士,只有严象和韦康后来因为失败丧命。自曹操迎奉汉献帝后,引起了袁绍的不满。时袁绍雄居北方。曹操则东忧吕布,南拒张绣。建安二年(197年)正月,曹操南征张绣,大败而归。袁绍则更加骄矜溢,写信给曹操,辞语骄慢。曹操阅后大怒,诸将都认为是败于张绣的缘故。钟繇因此问荀彧,荀彧说:“以曹公的明智,一定既往不咎,还有什么好忧虑的。”
见到曹操后,曹操将袁绍书信让荀彧观看,说:“现在准备讨伐不义,但力量无法与之匹敌,该怎么办?”