袁紹が兵をおこすと、夏侯惇は直ちに書面を持って急を告げた。
曹操は荀昱に許都の留守を委ね、兵七万で迎え撃ちに行った。
袁紹の出陣の際、田豊と沮授は守りにつく事を進言したが聞き入れられず獄に入れられた。
袁紹は、張紘、高覧、韓猛、淳于瓊を控えさせ、これに対して曹操は、許拠、張遼、徐康、李典で固めた。
曹操が張遼を出すと、袁紹は張紘で応戦した。
しかし両者は五十合打ち合っても勝負がつかないので、許拠を応戦に出した。
これを高覧が迎え討ち二組に分かれて打ち合った。
この間に夏侯惇と曹昂が敵陣に切り込んだ。
これを見た審配は二万の弓矢で射た。
曹操軍は敗走し、官渡まで引き下がった。
こうして一ヶ月も決め手のないまま対陣した。
曹操は荀昱に兵糧を届けるように使者を出したが許攸に捕らえられてしまう。
許攸は袁紹に進言をするが、これは計略であると言って動かなかった。
その上、敵と内通していると疑われてしまい目通りを許されなくなった。
かくして、許攸は嘆いて曹操に寝返った。
そして、袁紹の食糧基地の烏巣を襲うことを進言した。
曹操は自らを烏巣に向い、幕中で酒盛りをしていた淳于瓊を倒し、袁紹のもとに送りつけた。
それを知った郭図は、今こそ手薄な本陣を急襲すべきと袁紹に進言し、張紘と高覧が切り込んだ。
しかし、夏侯惇と曹仁、曹昂が待ち伏せしており大敗した。
袁紹は破れた淳于瓊を斬った。
郭図は大敗の責任を逃れるため、張紘と高覧が内通していると偽りの申し開きをした。
そして、二人が袁紹に会う前に「貴公ら、殿に殺されようとしておりますぞ」
と言うと、二人は仰天して曹操に降参していった。
張紘と高覧、そして兵糧も失い、袁紹軍は曹操軍に大敗した。
袁紹はわずか八百騎で落ちのびていった。
一方、曹操に捕らえられた沮授は、馬を盗んで袁紹のもとに戻ろうとしたが捕らえられて殺された。
曹操は、謝って忠義の士を殺してしまったと嘆息した。
その後、曹操は、袁紹攻略に乗り出した。