呂布復為袁術使高順攻劉備,公遣夏侯惇救之,不利。備為順所敗。
九月,公東征布。
冬十月,屠彭城,獲其相侯諧。進至下邳,布自將騎逆擊。大破之,獲其驍將成廉。追至城下,布恐,欲降。陳宮等沮其計,求救於術,勸布出戰,戰又敗,乃還固守,攻之不下。時公連戰,士卒罷,欲還,用荀攸、郭嘉計,遂決泗、沂水以灌城。月餘,布將宋憲、魏續等執陳宮,舉城降,生禽布、宮,皆殺之。
太山臧霸、孫觀、吳敦、尹禮、昌豨xī各聚眾。布之破劉備也,霸等悉從布。布敗,獲霸等,公厚納待,遂割青、徐二州附於海以委焉,分琅琊、東海、北海為城陽、利城、昌慮郡。
初,公為兗州,以東平畢諶chén為別駕。張邈之叛也,邈劫諶母弟妻子;公謝遣之,曰:“卿老母在彼,可去。”諶頓首無二心,公嘉之,為之流涕。既出,遂亡歸。及布破,湛生得,眾為諶懼,公曰:“夫人孝於其親者,豈不亦忠於君乎!吾所求也。”以為魯相。
四年春二月,公還至昌邑。張楊將楊醜殺楊,眭guì固又殺醜,以其眾屬袁紹,屯射犬。
夏四月,進軍臨河,使史渙、曹仁渡河擊之。固使楊故長史薛洪、河內太守繆尚留守,自將兵北迎紹求救,與渙、仁相遇犬城。交戰,大破之,斬固。公遂濟河,圍射犬。洪、尚率眾降,封為列侯,還軍敖倉。以魏種為河內太守,屬於河北事。
初,公舉種孝廉。兗州叛,公曰:“唯魏種且不棄孤也。”及聞種走,公怒曰:“種不南走越、北走胡,不置汝也!”既下射犬,生禽種,公曰:“唯其才也!”釋其縛而用之。
是時袁紹既並公孫瓚,兼四州之地,眾十餘萬,將進軍攻許,諸將以為不可敵,公曰:“吾知紹之為人,志大而智小,色厲而膽薄,忌克而少威,兵多而分畫不明,將驕而政令不一,土地雖廣,糧食雖豐,適足以為吾奉也。”
秋八月,公進軍黎陽,使臧霸等入青州破齊、北海、東安,留于禁屯河上。
九月,公還許,分兵守官渡。
冬十一月,張繡率眾降,封列侯。
十二月,公軍官渡。
袁術自敗於陳,稍困,袁譚自青州遣迎之。術欲從下邳北過,公遣劉備、朱靈要職。會術病死。程昱、郭嘉聞公遣備,言於公曰:“劉備不可縱。”公悔,追之不及。備之未東也,因與董承等謀反,至下邳,遂殺徐州刺史車胄,舉兵屯沛。遣劉岱、王忠擊之,不克。
廬江太守劉勳率眾降,封為列侯。
五年春正月,董承等謀洩,皆伏誅。公將自東征北,諸將皆曰:“與公爭天下者,袁紹也。今紹方來而棄之東,紹乘人後,若何?”公曰:“夫劉備,人傑也,今不擊,必為後患。袁紹雖有大志,而見事遲,必不動也。”郭嘉亦勸公,遂東擊備,破之,生禽其將夏侯博。備走奔紹,獲其妻子。備將關羽屯下邳,復進攻之,羽降。昌豨叛為備,又攻破之。公還官渡,紹卒不出。
二月,紹遣郭圖、淳于瓊、顏良攻東郡太守劉延於白馬,紹引兵至黎陽,將渡河。
夏四月,公北救延。荀攸說公曰:“今兵少不敵,分其勢乃可。公到延津,若將渡兵向其後者,紹必西應之,然後輕兵襲白馬,掩其不備,顏良可禽也。”公從之。紹聞兵渡,即分兵西應之。公乃引軍兼行趣白馬,未至十餘里,良大驚,來逆戰。使張遼、關羽前登,擊破,斬良。遂解白馬圍,徙其民,循河而西。紹於是渡河追公軍,至延津南。公勒兵駐營南阪bǎn下,使登壘望之,曰:“可五六百騎。”有頃,復曰:“騎稍多,步兵不可勝數。”公曰:“勿復白。”乃令騎解鞍放馬。是時,白馬輜重就道。諸將以為輕騎多,不如還保營。荀攸曰:“此所以餌敵,如何去之!”紹騎將文丑與劉備將五六千騎前後至。諸將復曰:“可上馬。”公曰:“未也。”有頃,騎至稍多,或分趣輜重。公曰:“可矣。”乃皆上馬。時騎不滿六百,遂縱兵擊,大破之,斬醜。良、醜皆紹名將也,再戰,悉禽,紹軍大震。公還軍官渡,紹進保陽武。關羽亡歸劉備。
八月,紹連營稍前,依沙縋zhuì為屯,東西數十里。公亦分營與相當,合戰不利。
時公兵不滿萬,傷者十二三。紹復進臨官渡,起土山地道。公亦於內作之,以相迎。紹射營中,矢如雨下,行者皆蒙循,眾大懼。時公糧少,與荀彧書,議欲還許。彧以為:“紹悉眾聚官渡,欲與公決勝敗。公以至弱當至強,若不能制,必可所乘,是天下之大機也。且紹,布衣之雄耳,能聚人而不能用。夫以公之神武明哲而輔以大順,何向而不濟?”公從之。
孫策聞公與紹相持,乃謀襲許,未發,為刺客所殺。
汝南降賊劉闢等叛應紹,略許下。紹使劉備助闢,公使曹仁擊破之。備走,遂破闢屯。
袁紹運谷車數千乘至,公用荀攸計,遣徐晃、史渙邀擊,大破之,盡燒其車。