東漢末年“黃巾之亂”、“十常侍之亂”和“董卓之亂”這三場接踵而來的軍政變亂,給了地方勢力前所未有的機遇,他們藉助天下大亂、皇權暗淡的時機,迅速發展壯大,擁兵自重,成爲雄踞一方的諸侯,致使中央政權名存實亡。當時的地方割據勢力遍佈全國各地,主要有河北的袁紹、河內的張揚、兗豫的曹操、徐州的呂布、揚州的袁術、江東的孫策、荊州的劉表、幽州的公孫瓚、南陽的張繡等十餘家。在這些割據勢力的連年征戰中,袁紹、曹操兩大集團逐漸脫穎而出。袁紹憑藉袁氏一族廣泛的人脈與“四世三公”的影響力,佔得了冀州之地,自領冀州牧,後又接連吞併了青州、幷州等地。建安三年(198年),袁紹擊敗盤踞幽州的公孫瓚,雄霸青、幽、冀、並四州,統一了黃河以北的大片土地。建安元年(196年),曹操趁關中大亂之機,將漢獻帝迎入許昌,形成“挾天子以令諸侯”的局面,取得了政治上的優勢,並以此廣招天下賢能猛士,進一步發展和壯大了自身的實力。建安二年(197年)春,袁術在壽春(今安徽壽縣)稱帝,曹操即以“奉天子以令不臣”爲名,進討揚州袁術與徐州呂布兩大集團,並取得了勝利,同時利用張揚部內訌的機會奪取了張治下的河內郡。自此曹操勢力西達關中,東到兗、豫、徐州,控制了黃河以南,淮、漢以北大部地區,從而與袁紹形成沿黃河下游南北對峙的局面。然而,依照《三國志》中的描述,雖然獻帝的到來使得曹操具有勤王的名聲和所謂的“中央正統權利”,但是其自身的實力並沒有得到太多的實際提升,而袁紹所控制的河北四州都是大州且遠離中原是非之地,經濟並沒有受到太大的破壞,特別是冀州號稱“帶甲百萬,谷支十年”,因此其實際的兵力、財力和物力等方面均遠在曹操之上。隨着自身實力的急劇膨脹,袁紹自然對於曹操獨霸中央權利的做法表示不滿,不甘屈居於曹操之下,甚至有“代漢自立”的打算,故而積極準備兵馬物資,擇機同曹操一決雌雄。
《三國志》記載,建安四年(199年)六月,袁紹挑選精兵十萬、戰馬萬匹,任命審配、逢紀主持軍事,田豐、荀諶、許攸充當謀士,顏良、文丑擔任將帥,企圖南下進攻許昌。當時,對於起兵討曹一事,袁紹的部下們意見不一,大致分爲以沮授和田豐爲代表的“緩戰派”和以郭圖、審配爲代表的“急戰派”。緩戰派認爲:*公孫瓚,連年興兵,賦役十分沉重,百姓疲憊不堪,倉庫積蓄不足,河北的內部情況不容樂觀。當務之急應着力減輕百姓賦役負擔,抓緊時間發展農業生產、恢復元氣。同時,對外獻捷天子,若曹操不允,再興師南下也好出師有名。曹操法令暢行無阻,士卒都訓練有素,其個人擅於用兵,長於變化,不會像公孫瓚那樣坐受圍困,因此斷不可輕敵冒進,儘量不與其決勝於一戰,而以持久戰的方法消耗對方。故應多造船隻,修繕器械,或派遣精兵或聯合外援,分多路乘虛進行騷擾河南,救右則擊其左,救左則擊其右,使其軍疲於奔命,令其民不得安業。如此以逸待勞,在三年之內,河南之地就可不勞而定。但是,急戰派則認爲:袁紹佔據河北四州之地,兵力大大超過曹操,倉儲雖不算富足,但也大大優於曹軍,兵法雲“十圍五攻”,此時集結河朔的強兵,以此*曹操,實在易如反掌,定可以一戰取勝。如果不乘袁軍屢戰的勝勢攻取,待曹操勢力壯大後就難辦了。袁紹自恃地廣兵強、糧草豐足,根本聽不進沮授的忠告,並聽信郭圖等人的讒言,奪了沮授的軍權,分給郭圖、淳于瓊等人。隨後,派陳琳撰寫討曹檄文(史稱《爲袁紹檄豫州文》)便傳天下,彙集河北精銳人馬大舉揮師南下,官渡之戰的序幕由此拉開。
袁紹舉兵南下的消息傳到許昌,朝野震動,就連曹操的部將們也多認爲袁軍強大難以抵敵。但曹操卻根據他多年來對袁紹的瞭解,認爲袁紹志大才疏,膽略不足,刻薄寡恩,剛愎自用,兵多而指揮不明,將驕而政令不一,難成大事;另外,荀彧從“度、謀、武、德”四個方面分析了曹方獲勝的可能性,也極大的鼓舞了曹操的信心,使其最終下決心以所能集中兵力抗擊袁紹的進攻。對於官渡之戰中曹、袁雙方出動的會戰兵力,歷來就有爭議,但《三國演義》中說曹方十五萬、袁方七十萬未免有些誇大,這主要是爲了烘托戰爭的氣氛,這是小說特有的寫作方式,但通過多方記載來推測,曹、袁雙方的兵力對比大概在1/5~1/3之間,袁方佔據明顯優勢。針對兵力不足的缺點,爲了爭取態勢上的主動,曹操進行了周密的戰略部署。首先,大膽放棄了對於黃河南岸的全面防守,僅令于禁率步騎兩千屯守黃河南岸的重要渡口延津(今河南延津北),協助扼守白馬(今河南滑縣東,黃河南岸)的東郡太守劉延,阻滯袁軍快速渡河和長驅突襲南下,同時以主力在官渡(今河南*東北)一帶築壘固守,以阻擋袁紹從正面發起的進攻。其次,派遣臧霸率精兵自琅玡(今山東臨沂北)入青州,佔領齊(今山東臨淄)、北海(今山東昌樂)、東安(今山東沂水縣)等地,利用其在青州的舊有影響力,牽制袁紹,鞏固右翼,防止袁軍從東面襲擊許昌;並派鍾繇等人持節鎮撫關中,通過外交手段,拉攏雍、涼諸部,抵禦袁紹,穩定左翼,以防袁紹憑藉兵力優勢開闢第二戰場,夾擊曹軍。其三,命荀彧坐鎮許昌,穩定後方,籌備糧草。建安四年(199年)十二月,正當曹操忙於籌備對袁紹作戰之時,劉備在徐州起兵反操,佔領下邳,屯據沛縣(今江蘇沛縣),並與袁紹聯繫,打算合力進攻曹操。曹操爲保持許昌與青、兗二州的聯繫,避免雙線作戰,於次年二月,果斷興師,親率精兵東擊劉備。劉備本來沒有多少嫡系,所得兵馬多是殺害徐州刺史車胄後得到的曹操的兵馬,因此,在曹操的強大攻勢下,根本沒能形成什麼戰鬥力,很快就崩潰了。曹軍乘勝追擊,迅速佔領沛縣,轉而進攻下邳,迫降關羽。劉備見大勢已去,隻身逃往河北投奔袁紹。當曹、劉作戰正酣之時,有人建議袁紹“舉軍而襲其後”,但袁紹以兒子有病爲辭拒絕採納,致使曹操過於輕鬆地擊敗劉備回軍官渡。
曹操是中國歷史上著名的軍事指揮家、軍事理論家,精通兵法、深諳韜略,《三國演義》中對曹的人品多有非議,但對於其個人的作戰指揮能力與風格還是給與了相當的肯定。從該書對於官渡之戰的描寫,我們便能夠感覺到曹操是一個用兵很正的人,非常注重軍隊建設和臨戰應變,不似有些所謂的軍事鬼才過分注重奇計妙策,酷愛行險搏殺。官渡之戰中,曹操針對袁紹所制定和採取的軍事策略,可謂是其軍事生涯中最爲閃亮的一筆。當時形勢下,袁紹兵多而曹操兵少,千里黃河渡口極多,如分兵把守則防不勝防,不但難以阻止袁軍南下,只會使自己本已處於劣勢的兵力更加分散。故而,曹操採取“集中兵力、扼守要害”的方式,極力防止袁軍發動突襲,爲官渡主力的重點防禦爭取時間。黃河南岸地勢平坦,易攻難守,只有官渡地處鴻溝上游,瀕臨汴水。鴻溝運河西連虎牢、鞏、洛要隘,東下淮泗,爲許昌北、東之屏障,是奪取許昌的要津和必爭之地,曹操選擇這裡作爲迎擊袁紹的主戰場,可謂“守其所必攻、以逸待勞”之舉。加之,官渡之地靠近許昌,曹軍便於補給,而曹操先前放棄的黃河天塹反成爲袁軍了運輸糧草的巨大障礙,這個“先棄後取”的策略彰顯了曹操過人的廟算能力。用人方面,曹操對於臧霸和鍾繇兩人的使用,充分考慮到此二人在青州和關中當地的影響力,藉此聯合地方勢力共同抵擋袁紹,撐住了曹軍的兩翼,極大地支持了曹袁決戰的正面戰場,直至袁紹敗回河北,也未能成功開闢出第二戰場,致使袁軍主力停滯於官渡之前,其固有的兵力優勢沒能充分地發揮出來。曹操的知人善任由此可見一斑,孫子所提倡的“擇人而任勢”不過於此。另外,在官渡序曲中,曹操平定劉備叛亂的迅速與果敢和袁紹支援劉備的緩慢與遲疑形成了鮮明的反差,此二人的決策能力也就不言而喻了。正是曹操獨到的指揮藝術才使得這場以少戰多、本無太多懸念的戰役充滿了玄機,官渡上空疑雲密佈,決戰的時刻即將來臨。