白馬の戦い（はくばのたたかい）は、中国後漢末期である建安5年（200年）4月に、河南の有力軍閥である曹操と河北の有力軍閥である袁紹が、白馬県で戦った戦い。両勢力が黄河の畔で争った官渡の戦いの前哨戦である。

兵力で劣る曹操軍が袁紹軍を軍略で翻弄し、袁紹軍の顔良は一戦であえなく斬られた。その直後に曹操が策略を用いて袁紹軍の文醜を延津で戦死させた戦いとまとめて「白馬・延津の戦い」と呼ぶこともある。

 背景 
袁紹は後漢の名門汝南袁氏出身であり、189年の霊帝没後の政変の際には宦官勢力と対抗する外戚の大将軍何進に従い、何進の暗殺後は十常侍の皆殺しを指揮した。その後に権力を掌握した董卓に一時は追われたが、直後に曹操ら関東の諸侯の盟主となり、同盟解消後も群雄のリーダー格の1人として冀州河北に勢力を築き、董卓や一族の袁術、北方から河北進出を狙う公孫瓚と対立しつつ勢力を広げた。

袁紹が河北において公孫瓚と争いを続ける一方、曹操は当初は袁紹に服属し、その武将として河南に派遣され、袁紹の対抗者となっていた袁術や、徐州を中心に勢力を蓄えていた陶謙、董卓を暗殺した武力を誇る呂布といった勢力を駆逐し、袁紹から自立した一方の雄となっていた。

董卓暗殺後の混迷を深める長安から董承らに庇護された献帝が脱出してくると、袁紹は元々献帝を廃する考えもあったことと、家臣団が賛成派と反対派に別れ意見の収拾をつけることができなかった。その間に曹操は許の地に献帝を迎え、天下に号令をかける大義名分を手にすることになった。袁紹は曹操の風下に立たされることを嫌い、理由をつけて曹操の政治に干渉したが、袁紹には公孫瓚、曹操には袁術・呂布・劉表・張繡といった強敵が近隣に存在していたため、両者の亀裂は決定的なものにはならなかった。

199年3月、袁紹は公孫瓚を易京の戦いで滅ぼした。その間にも各地に勢力を広げ、冀州・青州・并州・幽州の四州を治める河北最大の勢力となった。さらに北方の周辺民族である烏桓の勢力と友好関係を結び後顧の憂いを断ち、曹操との対決姿勢を露骨にした。一方、曹操も197年秋9月に袁術を陳国の戦いで大敗させ、さらに198年には張繡・劉表と呂布に対し攻勢に出て、12月には下邳城の戦いで呂布を滅亡させた。曹操は袁紹の官職を剥奪するなど、その勢力圏を脅かす調略を行い、両者の全面対決は避けられなくなりつつあった。

 開戦直前の動き 
曹操は199年夏4月、暗殺された張楊の陣営を指導していた眭固が袁紹に味方しようとしたため、史渙・曹仁らの軍を派遣しこれを阻止し、張楊の旧臣でもある董昭を使い、張楊の勢力を取り込んだ。

199年秋8月、曹操は袁紹に備えるため黄河の畔の要地である黎陽に布陣するとともに、臧覇に命じて青州方面から袁紹を牽制した。于禁を備えとして置き、9月には許都に帰還した。

かつて（197年春正月）、宛城で曹操を破ったこともある張繡は、荊州の劉表と結びたびたび曹操を苦しめていたが、199年冬11月に軍勢を引き連れて降伏した。曹操は張繡を列侯に封じ、さらにその参謀の賈詡を重用した。

この間、袁紹との勢力の合流を図った揚州の袁術を牽制するため、揚州刺史に厳象を派遣し、さらに徐州には劉備を派遣した。199年6月（『後漢書』献帝紀）、孤立した袁術は失意のうちに病死する。

200年春正月、許都で董承の謀反が発覚し、ひそかに董承と呼応していた劉備も徐州で刺史の車冑を殺害し反乱を起こした。曹操は董承の一派を処刑すると、劉備を討つため親征した。袁紹の参謀である田豊は曹操の背後をつくことを進言したが、袁紹は息子の病気を理由に出陣を許さなかった。曹操は劉備を敗走させ、その部将の夏侯博と関羽を捕虜とした。劉備は袁紹を頼って落ち延びた。

 白馬の戦い 
200年春2月、袁紹は田豊や沮授の反対を押し切り、黄河の畔に大軍を集め曹操との決戦に臨んだ。軍勢数十万で、審配と逢紀が軍の事務を統括し、田豊・荀諶・許攸を参謀に、顔良と文醜を将帥に任命し、精兵10万、騎兵1万と号する布陣であった。袁紹は檄文の起草を陳琳に命じ、曹操を痛烈に非難させた。

まず、将軍の郭図・淳于瓊・顔良を派遣して白馬県にいる東郡太守の劉延を攻撃した。

200年夏4月、曹操は荀攸の進言を受けて軍を2つに分け、西より将軍の于禁・楽進らを渡渉させ袁紹軍を牽制させつつ、同じく将軍の関羽・張遼（呂布の降将）を先鋒として機動力のある軽騎兵の指揮を執らせて白馬県を救援に向かわせた。袁紹が西の于禁らの軍に気を取られている隙に、関羽らの軍が迫ってきたため、驚いた顔良は迎撃に来たが、関羽が顔良を斬り殺し、袁紹軍を撃退した。

 延津の戦い 
白馬の包囲を解いた曹操は、その住民を移住させ合流しようとした。袁紹はそれを阻止するため、将軍の文醜に渡河を命じた。文醜は劉備と共に延津の南まで来たが、ちょうどそのときに白馬からの輜重部隊がやってきた。曹操と荀攸はこれを利用し、文醜の軍の秩序が乱れたのを待って襲撃しようとした。果たして文醜の軍は略奪を始め、当初は5・6000人いた騎兵も600に満たない数まで減少した。これをみた曹操は文醜の軍に攻撃を加え、散々にこれを破り、文醜を戦死させた。

名将として知られていた顔良・文醜を一戦で斬った曹操軍の勇名は轟いた。

 官渡の戦いへ 
このように曹操は局地的な勝利を積み重ねたものの、袁紹の主力は未だに健在であり、さらに袁氏の本籍である豫州においてはほとんどの郡が袁紹に呼応する動きを見せていた。劉備は袁紹の命令で豫州の黄巾の残党を集め曹操の背後を脅かした。さらに袁術の勢力を吸収した揚州の孫策も不穏な動きを示しており、許都を狙うという風聞がもっぱらであった。

戦力と物量で勝る袁紹に対し、曹操は官渡への戦略的撤退を余儀なくされた。袁紹は黄河を渡って陽武まで進出した。関羽は旧主の劉備の消息が判明したため、曹操の下を去っている。

于禁や徐晃といった諸将の奮戦や、荀彧・鍾繇・李通・趙儼らの後方支援にもかかわらず、曹操は目だった戦術的な勝利も得られぬまま兵糧が先に枯渇する状況に陥ってしまった。しかし、袁紹陣営の内情は、既に南下策の是非をめぐって田豊と沮授が相次いで遠ざけられるなど配下同士の対立が深刻であった。袁紹は200年冬10月に淳于瓊ら5名の将に命じて烏巣において兵糧の輸送に従事させたが、袁紹に見切りをつけた許攸は密かに陣を抜け出し、曹操に袁紹軍の輸送作戦を知らせ、淳于瓊らの攻撃を勧めた。曹操はこの進言を受けて烏巣を襲撃し、これを成功させた（烏巣の戦い）。袁紹はこのときも郭図と張郃が対立するなど統制を欠き、作戦が一貫しないまま軍を動かし、結局、烏巣の兵糧を失うと同時に多くの軍勢を失い、敗走を余儀なくされた。

 袁氏の没落と曹操の台頭 
一年後、曹操は倉亭まで軍を進め、袁紹の駐屯軍を破った（倉亭の戦い）。袁紹は領内の反乱の鎮圧に忙殺される中で202年に病没している。

袁紹の後継を袁譚と袁尚とが争い、袁家の勢力は二分された。

曹操は郭嘉の進言により袁譚と一時結び、袁尚と戦い204年8月には袁尚の臣下の審配が守備する鄴を陥落させ、袁尚を幽州に追いやった。次に袁尚の勢力を吸収しつつあった袁譚を理由をつけて攻撃し、205年春正月に南皮において袁譚・郭図を斬った。袁譚の本拠であった青州には張遼らを派遣して平定した。

曹操はさらに袁尚らを追って幽州に進撃し、207年秋8月には柳城の戦いで烏桓の蹋頓を斬るなどして袁氏の命脈を完全に断ち、さらに烏桓や遼東の公孫氏を服属させている。また、関中や并州方面においても袁氏陣営の高幹や郭援を滅ぼす一方で、張燕、馬騰、韓遂、王邑らを服属させるなど、曹操はその勢力圏を大きく広げることとなった。