東漢末年,群雄逐鹿中原。就北方中原地區,本來存在呂布、劉備、公孫瓚、張繡、袁術等眾多的諸侯。並且,在一番較量之後,該地區基本形成了袁紹和曹操對峙的局勢了。對於這兩位諸侯來說,顯赫的袁紹在河北,他的舊盟友曹操在河南。在此基礎上,袁紹和曹操之間的大戰,基本上不可避免了。彼時,白馬在黃河南岸,對面即軍事重鎮黎陽,曹操還在附近的延津安排了於禁的兩千軍隊,也即該地區是當時的兵家必爭之地。到了公元200年,袁紹派遣大將顏良,以此發動了「白馬之戰」,此戰的爆發,不僅意味著袁紹和曹操終於交手了,也讓關羽一戰成名。
一
首先,根據《三國誌》等史料的記載,公元220年二月,冀州牧袁紹終於決定對曹操出手了。彼時,袁紹親自進軍黎陽(今河南浚縣東北),派大將顏良進圍白馬,攻東郡太守劉延。對於當時的袁紹和曹操,大致上以黃河為界,所以,袁紹想要攻打曹操,顯然要渡過黃河。而袁紹派遣大將顏良圍攻白馬,就是確保自己的主力刻意順利渡河南進。面對袁紹和顏良的大軍,東郡太守劉延向曹操告急請援。到了這一年的四月,曹操為解除側翼威脅,北救劉延。因為袁紹在兵力規模上遠超曹操,所以,曹操手下的謀士參謀荀攸提出了「聲東擊西」的建議。
二
在荀攸這位謀士參謀看來,曹操應當率軍先佯裝在延津(今河南汲縣東)渡河,做出襲擊袁軍後方的姿態。在此背景下,性格多疑的袁紹,肯定會分出一部分兵力到延津(今河南汲縣東)。在袁紹分兵之後,曹操應當集中兵力來進攻白馬的顏良。對此,曹操自然採納了謀士參謀荀攸的方案。在聲東擊西之下,袁紹果然中計。而對於佔據白馬的顏良,自然對突出起來的曹操大軍趕到驚訝,所以,顏良只能率軍倉促迎戰。在白馬之戰中,曹操派出了關羽和張遼這兩員大將。對於關羽來說,因為和劉備暫時失去聯繫,只能暫時歸降了曹操。
三
不過,就曹操來說,對關羽卻是非常器重,所以讓關羽和張遼一起進攻顏良。在白馬之戰中,關羽躍馬陣前,望見顏良麾蓋。儘管顏良在當時已經是成名的大將了,但是,關羽毫不畏懼,直衝過去,在萬眾之中刺死顏良,斬其首級而歸。對於袁紹一方來說,因為主將顏良被關羽斬殺,手下的將士自然慌亂不堪。在此基礎上,曹操揮令大軍衝殺,袁軍大敗潰散,遂解白馬之圍。在白馬之戰後,袁紹非常憤怒,所以讓文丑等人在黃河南岸攻擊曹操的運糧車隊。由此引發了延津之戰。
四
最後,在延津之戰中,袁紹手下的另一位大將文丑也戰死沙場。當然,在《三國誌》等正史中,文丑是死於亂軍之中,也即不是關羽斬殺的。經過白馬之戰和延津之戰這兩場前哨站後,袁紹和曹操正式在官渡展開了決戰——官渡之戰。至於在白馬之戰立下大功的關羽,則被漢獻帝封為漢壽亭侯。在《三國誌》等正史中,關羽在斬殺顏良之後,認為自己足以回報曹操的厚待,再加上獲得了劉備的消息,所以決定離開曹操。對此,因為讚歎關羽這位武將的忠義,所以曹操也沒有派遣手下去追趕關羽,而關羽也最終和劉備再次相聚。