袁紹與曹操的決戰,史稱官渡之戰,其實是包含了一序列的爭戰。建安五年〈西元200〉二月,曹操擊潰劉備後,袁紹即積極的想南下侵犯曹操。先派顏良引重兵圍住在白馬〈河南滑縣〉的劉延,曹操帶著關羽、張遼前往救援,關羽斬了顏良才解了白馬之圍。接著又派文醜渡黃河來到延津,也是被關羽給砍了。關羽離開後,袁紹兵臨官渡,官渡在許昌北,曹操急忙回防,兩軍僵持於官渡,當時的曹軍兵疲糧少,曹操想退守許昌,但是荀彧勸他說:「紹悉眾聚官渡,欲與公決勝敗。公以至弱當至強,弱不能制,必為所乘,是天下之大機也。且紹,布衣之雄耳,能聚人而不能用。夫以公之神武明哲而輔以大順,何向而不濟!」曹操於是堅持下去才有日後劫烏巢燒糧,在官渡戰勝袁紹的大捷。
袁紹戰敗後退回冀州,隨即召集了在青州的長子袁譚、幽州的次子袁熙以及在并州的外甥高幹提兵參戰,再度前進到倉亭〈山東范縣東北〉,還是被曹操打得落花流水,袁紹逃回冀州。這時候在汝南的劉備趁著曹操在追擊袁紹,許昌空虛時對許都展開偷襲,曹操暫時把袁紹放下,掉過頭來迎擊劉備。此時的劉備雖然有趙雲、關羽、張飛等猛將,但兵少又沒有一個能夠運籌帷幄的謀臣,終於還是無法和曹操相抗衡,被打敗後投向荊州的劉表。
曹操在此時審視時勢,認為荊州的劉表無心逐鹿中原,劉備已不具威脅,決定先徹底的消滅窩在冀州的袁紹,於是揮兵北上,袁紹聽到曹軍來襲憂傷過度吐血而亡。袁紹子袁譚、袁尚不合無法合力抗曹。袁譚和袁熙兩人分分合合,建安10年〈西元205〉袁譚在與曹軍混戰中死於亂軍中,袁尚和袁熙最後逃到遼東,於建安12年〈西元207〉被遼東太守公孫康砍下人頭獻給了曹操,袁家勢力四世三公就此消滅,曹操終於一統黃河兩岸。
袁紹在河北兵多將廣謀臣如雲,可惜他器量狹小遇事難斷白白浪費了那得天獨厚的資源。如興平二年〈西元195〉獻帝逃出長安,沮授就勸他迎接獻帝,假其旗號「號令天下,以討未復,以此爭鋒,誰能敵之?」結果他優柔寡斷讓曹操搶先一步從此處於被動。在和曹操爭戰的過程中謀臣田豐勸他戰他不戰,沮授勸他守他不守,該戰不戰該守不守不輸也難。在官渡許攸勸他偷襲許昌,他卻因許攸家人在鄴郡收賄,不但計不聽還逼得他改投曹操,導致烏巢糧倉被劫官渡兵敗。張郃原本也在袁紹帳下,最後也被逼的投向曹操日後成為曹操的五虎將之一。曹操的重要參謀荀彧、郭嘉原本都是袁紹的手下,最後都變成擊敗袁紹的關鍵人物。程昱說:「袁紹據燕、趙之地,有併天下之心,而智不能濟也」大概是袁紹最好的寫照了。