金旋当初兵发三路征伐曹操,曾经派人说服袁绍出兵袭击曹操后方。袁绍因为金旋、曹操势力均强,虽然答允出兵,但是按兵不动,坐山观虎斗。
曹操被金旋连续击败之后,损兵折将,袁绍此时落井下石,欲要出兵攻击曹操东线。袁绍召集众人,研究出兵战略,谋士许攸道:“曹操新败,势力已弱。金旋三路大军虎视眈眈,窥视下弁、弘农、下邳三郡。曹操惧怕金旋入侵,大军屯集中屯于下弁、长安、洛阳、弘农、下邳等郡,濮阳、许昌、徐州三郡防守空虚。主公可以三路大军同时出击,一路出北海,径取都阳,然后攻打徐州;一路出界桥,径攻濮阳;一路出邺城,下官渡,径取许昌。曹操必然首尾难顾,失败已成定局。”
许攸之言甚合袁绍心意,袁绍聚集诸将,分派军令。南路军以颜良为主将,高览为副将,田丰为军师,统领十万大军出北海,攻打徐州;中路军以袁尚为主将,张合为副将,审配为军师,统领十五万大军出界桥,攻取濮阳;袁绍自统大军二十万为北路军,出邺城,径取许昌。三路军约期攻打曹操,一起进发。
此时曹操畏惧金旋犯界,重兵皆屯于长安、下弁、下邳三郡。曹操在许昌闻知袁绍三路兵马同时出兵,召集众文武商议对策。郭嘉道:“袁绍有谋不断,其心多疑。可以施计离间其部下大将,将不用命,其军虽众亦不可惧。张辽文武众才,屯兵都阳,必可退去颜良一路兵马。张燕老将知兵,又使杨修相助,袁尚一路亦可拒之。”
曹操听从郭嘉之言,让张辽统领八万精兵屯于都阳,阻击颜良所部。张燕、杨修统领十万精兵驻守濮阳,抵挡袁尚所部。曹操起许昌、陈留、谯城三郡兵马十五万,以郭嘉为军师,屯兵于官渡,迎击袁绍部。
袁绍统兵到达官渡城下,两军交锋。曹操让典韦出战,袁绍大将文丑拍马出迎,两将交锋百余合,不分胜负。袁绍恃其兵众,挥军混战。曹兵因为兵少,抵挡约半个时辰,渐觉不支。
曹操心知此战关系重大,持刀拍马出阵,身先士卒,统领亲兵死战,曹军士兵见状,不由士气大振,攻势复苏,逐渐挽回颓势。战至天晚,各自鸣金收兵。
此战袁曹两军伤亡惨重,均损折士兵三万余人,官渡城内外哀声不断,城外尸横遍野。
曹操因为袁绍兵众,牢守官渡,不敢出城决战,间或出兵扰敌,或劫营,或劫粮。袁绍不胜其扰,派大将吕旷、吕翔各自统率三万精兵轮换巡防粮道。曹操让典韦统领万余轻骑劫粮扰敌,避开吕旷部下,只在吕翔巡防时袭击。
袁绍因为吕翔轮值之时,粮车屡屡被焚,怀疑吕翔通敌,让吕翔统领部下返回大营,派大将左贤王代行其职。曹操见袁绍换将,传命典韦统领部下入城。袁绍自此粮道通畅,因此更加怀疑吕翔。
曹操又使细作流言吕翔欲降,袁绍得报大怒,欲斩吕翔。许攸得到消息,连忙赶到帅帐,对袁绍说道:“吕翔乃河北大将,素来忠心耿耿,家小今俱在南皮,投降流言必为曹操离间之计。主公若是斩杀吕翔,其兄吕旷必会率领部下作乱,如此我大军必然势弱。”袁绍闻言顿悟,抚慰吕翔兄弟,以安两人之心,然而将帅之间自此心有芥蒂。