建安四年,袁紹兼并公孫瓚后,早有圖許之意,兵力強(qiáng)大,遂南征。同年八月,曹操進(jìn)軍黎陽,臧霸駐青州,于禁屯軍河上。
建安五年,曹操東征劉備,此時(shí)田豐提議趁曹操東征劉備之機(jī),攻曹操后方。袁紹卻因“子疾”與良機(jī)擦肩而過。曹操平昌豨叛后,還軍官渡。二月,袁紹遣郭圖、淳于瓊、顏良攻東郡太守劉延于白馬,當(dāng)時(shí)沮授曾諫袁紹,顏良性情促狹,雖然驍勇但是不能獨(dú)擋一面。袁紹不聽,引兵至黎陽,南渡。
在早期,曹操和袁紹是多線作戰(zhàn)。在曹操東征劉備時(shí),袁紹攻于禁于延津,于禁堅(jiān)守。后來袁紹別營被于禁和樂進(jìn)等帶著五千步騎攻破,從延津西南的緣河到汲、嘉二縣失陷,袁紹中何茂、王摩等將領(lǐng)二十余人投降。曹操后來又讓于禁的別將屯原武,攻袁紹別營于杜氏津,,不過依舊逐漸撤退,撤軍至官渡。袁紹和曹操是在兗州、豫州正面交戰(zhàn)。
四月,曹操北上救劉延,進(jìn)軍延津,采用荀攸之策成功使袁紹向西分兵。張遼、關(guān)羽輕兵襲白馬。此時(shí)程昱守鄄城,袁紹聽說程昱兵少,不愿耗費(fèi)兵力攻打鄄城,直奔許昌。
袁紹在損失顏良、文丑之后,將戰(zhàn)線推進(jìn)至官渡。白馬之戰(zhàn)曹操雖然勝利,但實(shí)力不足,被袁紹推進(jìn)至官渡后形成對峙,可以說是最后一搏。
而袁尚所置河?xùn)|太守郭援到河?xùn)|,關(guān)中都暗中與他通信來往。鐘繇渡汾水為營,張既說服馬騰一起攻郭援,郭援失敗。后來,河?xùn)|的衛(wèi)固、張晟、張琰、高幹等人又被鐘繇擊破。而袁紹和曹操相拒于官渡之時(shí),臧霸多次以精兵入青州,袁紹不能攻下曹操東方。
袁紹靠著實(shí)力強(qiáng)勁與曹操在官渡對峙、消耗。袁紹有四州之地,沮授提議持久戰(zhàn),曰:“北兵數(shù)眾而果勁不及南,南谷虛少而貨財(cái)不及北;南利在于急戰(zhàn),北利在于緩搏。宜徐持久,曠以日月?!痹B不從。
八月,袁紹連營逐漸逼進(jìn)官渡,與曹操戰(zhàn),勝。袁紹占有優(yōu)勢。此時(shí)曹操兵不滿萬,傷者十二三,士卒多叛,軍中糧少。但是袁紹內(nèi)部消耗十分嚴(yán)重。
袁紹派淳于瓊等將兵萬余人北迎運(yùn)車,沮授說袁紹:“可遣將蔣奇別為支軍于表,以斷曹公之鈔?!痹B不從。袁紹多次判斷錯(cuò)誤,并且不斷削弱沮授的權(quán)利,沮授開始是監(jiān)軍,在郭圖等人蠱惑下,袁紹分監(jiān)軍為三都督,讓沮授及郭圖、淳于瓊各典一軍,沮授開始被架空。后來袁紹渡河時(shí),又把沮授部兵給了郭圖。
不僅如此,袁紹內(nèi)部消耗嚴(yán)重,派系矛盾巨大。審配坐鎮(zhèn)鄴城,從嚴(yán)執(zhí)法收系許攸家人,這促使了許攸的投敵。淳于瓊駐扎在距離袁紹四十里的烏巢,此時(shí)許攸進(jìn)襲許之策,袁紹不從,同時(shí)家人被審配從嚴(yán)治理,直接導(dǎo)致許攸投靠曹操,并且為曹操帶來重要情報(bào)。曹操留曹洪守營,親自帶步騎五千夜襲烏巢。
張郃此時(shí)勸說袁紹立即救烏巢,而郭圖此刻主張攻官渡。張郃認(rèn)為曹操官渡大營堅(jiān)固,不能很快攻打下來,一旦淳于瓊失守,必?cái) ?/p>
袁紹卻聽從郭圖建議,派輕騎救淳于瓊,而用重兵攻曹操官渡大營。官渡久攻不下,曹操卻大破淳于瓊,并且把來支援的輕騎斬殺。而袁紹的大將張郃,帶著高覽及所屬兵馬投敵。
袁紹徹底崩盤。
袁紹失敗的原因,一是內(nèi)耗,即派系斗爭。開戰(zhàn)之前的沮授被分權(quán),從監(jiān)軍到都督最后兵權(quán)歸了郭圖,到審配從嚴(yán)執(zhí)法收系許攸家人,逼反許攸,然后在得知烏巢被偷襲后,郭圖與張郃的意見相左。失敗后,張郃反水,袁紹內(nèi)部損耗巨大。二是袁紹多次判斷錯(cuò)誤,從曹操東征不去攻許而錯(cuò)失良機(jī),用顏良失誤,沮授以袁紹有四州之地建議持久戰(zhàn)消耗曹操的建議被駁回,曹操夜襲烏巢,而袁紹選擇棄烏巢而直接力攻官渡。