曹操把穷途末路的汉献帝接到许昌,“挟天子以令诸侯”,这就与北方势力最强大的袁绍发生了冲突。
袁绍家族显赫,四世三公,袁氏的门生故吏遍天下,他通过兼并战争,灭了割据幽州的公孙瓒等割据势力,占据了幽、冀、青、井四州土地,华北一带基本都属他的版图,他认为曹操是他称霸中原的劲敌,必先将其剪除。
公元200年二月,袁绍集中了十万精兵,派沮授为监军,从邺城出发进兵黎阳。他先派大将颜良渡过黄河,进攻白马,企图诱曹军离开官渡,然后一举消灭之。这时曹操早已领兵来到官渡,听说白马被围,急于去救。随军谋士苟攸献计,要曹操声东击西,分散袁绍的兵力,可率军先抵延津一带,假装渡河,把袁军的主力诱到西边,然后趁其不备派一支轻骑兵突袭白马,打他个措手不及。曹操依计而行。袁绍听说曹军在延津渡河,果然派大军前往堵截,曹操亲率一支轻骑兵到达离白马十里之地,才被颜良发现,急忙仓促应战,被曹军前锋——暂降曹操,急于立功离去的关羽所斩杀。袁军群龙无首,顷刻间狐奔鼠窜。
袁绍听到曹操救了白马,爱将颜良被杀,气得暴跳如雷。遂派大将文丑率六千轻骑兵为先锋,全军追击曹军。曹操又依苟攸之计,将大批粮草辎重、武器盔甲马匹等丢弃于路,好像是落荒而选,并派六百骑兵埋伏在延津南坡。文丑率轻骑兵赶到南坡,看到曹军大批物品丢弃在路上,便认为曹军已逃之天天。就令兵士们沿路拾取物品,顿时袁军争先恐后,争夺物品,队伍大乱,这时曹操一看时机已到就令伏兵猛烈出击,袁军来不及抵抗,被杀得七零八落,文丑也被关羽所杀,曹军大获全胜,形成了袁、曹两军对峙官渡的局面。
这时袁军尚有十万兵马,而曹军只有三四万人马,况且袁军粮草充足而曹军粮食不济,如果两军长期对峙,曹军难以坚持,所以就主动出击,但屡战不胜,曹操只好改变了战略,高壁深垒,坚守不出。袁绍见曹军在营垒里坚守,就命士兵在曹营外边堆起土山,筑起高台,让兵士们在高台上居高临下往曹营里射箭,箭如飞蝗,曹军只能靠盾牌护着身子才能行动,曹操忙向众谋士询问解决的办法。谋士刘哗设计了霹雳车,车上安装着机钮,兵士们扳动机钮。就把石块甩上去。
高台被击塌,袁军兵士被石头打得头破血流,袁绍谋士审配献计,派人暗中挖掘地道通向曹营,以便随时袭击曹军,曹操就针锋相对,就在军营令兵士们挖掘又长又深的壕沟并蓄满水,切断了地道的出口,袁绍的偷袭阴谋又告失败,如此双方相持了数月,其间,曹操曾派徐晃、史涣截烧了袁军的数干车粮食,但无济干事,曹军兵少粮缺,难以持久,出现了动摇的苗头,为此,曹操写信给留守许都的苟攸,欲撤兵回保许都,苟攸立即回信,劝阻曹操不可撤兵,信中指出:谁先撤兵谁被动,战局目前很关键,要捕捉战机,出奇制胜,千万莫失良机。因而曹操打消撤军的念头,等待战机。
同年十月,袁绍的后方又将大批粮草运往前线,袁绍派大将淳于琼率一万人马保护,驻扎在离袁绍大营40里的鸟巢,谋士沮授向袁绍建议,派将军蒋奇率兵在外围巡逻,以防曹军偷袭。因袁绍对其极有成见,因而将沮授的建议置之不理。与此同时,谋士许攸向袁绍献计,趁曹军仍在官渡坚守,派一支人马绕过官渡,偷袭许都,使曹操首尾不能相顾,而袁绍却很冷淡地说:“不行,我要先打败曹操。”正在这时从冀州传来其子侄犯法,受到惩治的消息,许攸决意弁袁投曹,并向曹操献计:速派兵前去偷袭鸟巢,烧毁袁军粮草。只要鸟巢一失,袁军不战自乱,不出三天,也就败退而逃。
曹操听后兴奋不已,认为这是出奇制胜的良好战机,留苟攸、曹洪守大寨,自己亲率五千人马,打着袁军的旗号,马衔横枚,兵士每人负一捆干柴,悄然无声地向鸟巢迸发,黎明时分赶到鸟巢,立即开始行动,顿时浓烟滚滚火光冲天。袁军还没来得及穿衣,淳于琼的酒还没醒,仓促上马应战,被曹军大将乐进一刀砍于马下,袁军一看守将拨杀,抱头鼠窜。这时袁绍看到鸟巢的火光,认为曹军会倾巢出动去劫粮,大寨肯定空虚,便不听劝阻,派大将张邰、高览去劫曹军的大寨,结果遭遇曹洪、夏侯渊等人的竭力抵抗,久攻不下,这时曹操又率军赶回,腹被受敌,张邰、高览一看大势已去,跟着袁绍这种好谋无断、文过饰非、嫁祸于人的人继续干下去,只能当殉葬品,于是就投降了曹操。