建安五年(公元200年)二月,袁紹派郭圖、淳于瓊、顏良進(jìn)攻駐扎在白馬的東郡太守劉延,袁紹領(lǐng)兵到黎陽(yáng),準(zhǔn)備渡過(guò)黃河。四月,曹操往北援救劉延。荀攸勸說(shuō)曹操“現(xiàn)在我們兵力少難以抵擋敵軍,只有分散他們的兵力才可取勝。您到延津,裝作好像要渡河攻打其后方的樣子,袁紹定會(huì)分兵西向應(yīng)戰(zhàn),然后我們率領(lǐng)輕裝部隊(duì)襲擊白馬,乘他們沒(méi)有防范,就可以捉到顏良。”曹操采納了他的建議。袁紹聽(tīng)說(shuō)曹軍渡過(guò)黃河,立即分兵往西應(yīng)戰(zhàn)。曹操帶領(lǐng)軍隊(duì)日夜兼程直奔白馬,在離白馬還有十余里時(shí),顏良大驚,前來(lái)迎戰(zhàn)。曹操派張遼、關(guān)羽作先鋒,打敗袁軍,斬了顏良。于是解除白馬之圍,遷移當(dāng)?shù)孛癖娧刂S河向西撤退。袁紹此時(shí)渡河追擊曹軍,追到延津南面。曹操統(tǒng)率軍隊(duì)扎營(yíng)于南面的山坡下,派人登上營(yíng)壘瞭望敵方,報(bào)告說(shuō): “大約有五六百騎兵。”過(guò)了一會(huì)兒,又報(bào)告說(shuō): “騎兵逐漸增多,步兵多得數(shù)不過(guò)來(lái)?!辈懿僬f(shuō):“不要再報(bào)告了?!本兔铗T兵卸下馬鞍放開馬。這時(shí),從白馬收繳的軍需物資已被運(yùn)上大路。將領(lǐng)們認(rèn)為敵人騎兵多,不如撤回保衛(wèi)軍營(yíng)。荀攸說(shuō):“這樣做是用來(lái)引誘敵人上鉤的,怎么能撤走呢?”袁紹的騎兵將領(lǐng)文丑和劉備帶領(lǐng)五六千騎兵先后趕到。曹軍將領(lǐng)們又說(shuō): “可以上馬了。”曹操說(shuō):“不行?!边^(guò)了一會(huì)兒,敵人的騎兵越來(lái)越多,有的把目標(biāo)盯在軍用物資上,分頭奔馳過(guò)去。曹操說(shuō): “可以了?!庇谑潜娙松像R。當(dāng)時(shí)騎兵還不滿六百,曹操出兵攻擊,大敗敵軍,殺了文丑。顏良、文丑都是袁紹手下的名將,兩次交戰(zhàn),全被擒殺,袁紹大為震驚。曹操回軍官渡。袁紹進(jìn)軍,保衛(wèi)陽(yáng)武。關(guān)羽趁機(jī)逃歸劉備處。