漢獻帝建安五年(公元200年)二月,袁紹任命居壽(居jū)為監軍,統率十萬大軍,從鄴城(今河南安陽以北)出發,攻打許昌。袁紹進軍到黃河北岸的溧陽(今河南浚縣),派郭圖、顏良攻打白馬(今河南滑縣)。他試圖引誘曹操離開官渡(今中牟縣東北),壹舉消滅曹駿。監軍巨壽認為,顏良雖然勇猛,但性格高傲,缺乏智謀,恐怕無法承擔如此重任。袁紹向來固執己見,從不聽巨手的意見,堅持不改變自己當初的決定。
白馬東郡太守柳巖聽說袁俊要來進攻,立刻派人去報告曹操。曹操得到報告後,迅速召集文臣武將商議對策。根據大家的建議,他決定不與袁紹硬拼,而是避實就虛。他指揮軍隊,假裝從演金渡過黃河,攻擊袁紹的後方。其實是想把袁紹的主力從黎陽引開,麻痹攻打白馬的顏良。果然不出曹操所料,袁紹得到曹操進軍演金的消息,命令黎陽的軍隊趕在曹駿渡河之前到達演金渡口,準備與曹軍決戰,曹操見袁紹上當,悄悄率領壹支輕騎沖向白馬。攻白馬的閻良、郭圖,依仗兵馬,背靠黎陽主力,自得其樂。曹操軍隊的突然出現,讓顏良心急如焚。曹駿從左向右進攻,閻良抵擋不住對古代山水畫的欣賞,在戰鬥前被曹駿殺死。郭圖見情況不妙,嚇得拔腿就跑。
袁紹聽說大將顏良被殺,攻打白馬的袁軍權全軍覆沒。他氣得跺腳。為了替顏良報仇,他派大將文醜帶領五六千騎兵渡河追擊曹操。
曹操已經從白馬撤軍,沿著黃河向西進軍。當曹軍走到南邊的山坡上時,他得到消息說袁紹派軍隊來追他。曹操見此處地勢險要,兩山相對。峽谷中只有壹條曲徑通幽,山坡上的樹木郁郁蔥蔥,於是他有了壹個計劃。他下了命令:“後軍就是前軍,前軍就是後軍。留下壹些車輛和物資,繞道向西,讓黃旭挑選600多名精銳騎兵,埋伏在樹林裏。過了壹會兒,文醜的大隊人馬到了。當他們看到路上的車輛和物資時,他們認為曹駿為了他的生命而離開了他們,所以他們跳下馬,沖過去搶東西。這時,曹操壹聲令下,埋伏的騎兵突然沖了出來,壹見袁俊就殺了他。文醜被這突如其來的襲擊,急忙迎戰。結果,他被黃旭砍死了。他的兵逃了,逃了,倒了,都散了。曹駿打了勝仗,帶著戰利品興高采烈地回到官渡。
袁俊連續兩次被擊敗,士氣低落。但袁紹依然依仗自己的大量兵力,決心渡河與曹操主力作戰。沮授勸他:“目前我軍新敗,不能決戰。曹操雖勝,小夜曲缺糧。只要我們和他長期對抗,就能打敗他。”袁紹冷冷地說:“妳還不明白嗎?”他不聽沮授的勸阻,率領大軍渡過黃河,進入吳恙,涉水過倔強的運河,直逼官渡。
官渡,壹個古老的漁家,離許昌不到200裏,是南北交通的咽喉。如果官渡失守,許昌將失去屏障。於是曹操竭力堅守官渡陣地,以至於袁紹壹時無法得逞,戰局進入膠著狀態。
時間長了,袁紹感到糧食困難,希望盡快打破這種曠日持久的局面。壹天,袁紹巡視陣地,爬上壹個土堆,看到曹穎的士兵的活動。袁紹受此啟發,命令士兵們沿著曹操的陣地堆起土堆,設立瞭望塔,讓弓箭手居高臨下,尋找機會向曹操射箭。曹駿遭到這壹突然襲擊,造成許多人員傷亡。曹操吃了虧,就聚眾商議對策。有人建議制造壹輛投擲石塊的車來對付袁俊..這種送石車能把十斤大的石頭發射到300步以外的地方。曹操命工匠連夜按圖紙制作。石車造好之後。曹操命令各處的運石車對準袁紹的瞭望塔,同時發射。剎那間,聲如雷鳴,巖石飛空,袁俊被打死,哭嚎著。
雖然曹操多次擊退袁紹的進攻,守住了陣地,但是由於雙方長期僵持,糧草供應越來越困難,顯得有點無奈。就在這時,突然衛兵跑來報告說,壹個名叫許由的官員從袁俊跑來,說有急事要見他。許由早就認識曹操,曹操連忙迎了進去。許由告訴曹操他來的原因,並建議曹操出兵攻打袁紹的吳超糧倉。他說:“淳於瓊是袁紹派來守衛吳超糧倉的,他生性傲慢,喜歡喝酒,警惕性很差。如果派出突襲者攻擊並燒毀那裏的所有糧食,袁俊將在三天內不戰而潰。”第二天,曹操和他的謀士們商量,制定了壹個夜間進攻吳朝的作戰計劃。
十月的壹個夜晚,萬籟俱寂,滿天繁星。曹操、張遼、樂進等將領,帶著五千精兵,打著袁俊的旗號,悄悄離開官渡,向吳超進發..守衛吳老巢外圍的哨兵看到壹群人迎面走來,趕緊攔住他問話。張遼謊稱:“我們是的人,是袁將軍派我們到來運糧的。”沒等哨兵進壹步詢問,他就走近了壹步,故意壓低聲音,裝作很神秘的樣子。“我聽說曹操要進攻,袁將軍派我們去增援。”哨兵壹看到橫幅上寫著“元”字,就不再懷疑,讓他們通過。曹駿摸著老窩,按照預定計劃分頭占領主要道路,放火燒糧庫。剎車的時候,糧庫到處起火,濃煙滾滾直沖雲霄。袁俊士兵嚇得連聲抱怨,趕緊向淳於瓊報告。醉了的淳於瓊聽說糧庫著火,曹操的人馬進來,嚇出壹身冷汗,趕緊收兵準備迎戰。曹操的將軍樂進沖進來,壹刀就把他幹掉了。其余將士紛紛落荒而逃,沒多久就結束了戰鬥。
袁紹在官渡前線,當他得知吳朝被襲,糧食被燒光時,目瞪口呆。他的兒子袁譚勸道:“情況危急。我們該怎麽辦?”?快點做點什麽!”袁紹想了壹下,假裝平靜。他說:“曹操攻打吳朝,我就攻打他的大本營,切斷他回家的路。我會叫他沒有好下場!“袁紹下令張泰、高覽在官渡攻打曹操,不顧任何人反對。張合和高覽只好忍痛領兵。當袁俊到達官渡時,他遇到了曹洪的強烈抵抗。背後,從吳超返回官渡的曹操被猛烈攻擊。張合被抓得腹背受敵,無力反抗。他痛恨袁紹的虛偽奸詐,聽信謠言,認定袁紹成不了大事,於是和高覽壹起向曹操投降。袁紹連敗,糧草被燒,謀士開小差,將領投降。眼看潮水退了,他慌忙逃向北方。袁紹逃出黃河時,只剩下八百殘兵敗將。
壹場以少勝多,以弱勝強的官渡大戰結束了。曹操乘勝追擊,繼續向袁紹占領的地區進軍,很快統壹了北方。