在消灭眭固后,为了应对之后与袁绍的战争,曹操预作布置。
命在青州有潜在影响的臧霸等人攻入青州,占领齐、北海等地,巩固右翼;
又命大将于禁屯军黄河南岸,监视袁军。
不久,张绣听从谋士贾诩之计,投降曹操。
曹操大喜,拜张绣为扬武将军,从而解除了后顾之忧。
建安四年(199年)十二月,曹操自率军屯于官渡,准备迎击袁绍。
刘备在陶谦死后,曾一度出任徐州牧,后徐州被吕布攻占,刘备投奔曹操。
曹操认为刘备是个英雄,先后表他为豫州牧、左将军。
曹操攻占徐州不久,淮南袁术准备逃往青州往依袁绍,曹操派刘备去截击。
袁术北上不得,呕血而死。
刘备到达下邳后,袭杀徐州刺史车胄,占据徐州,自己屯于小沛。
曹操令刘岱、王忠率兵征讨,被刘备击败。
建安五年(200年)正月,董承等人谋诛曹操,事泄被杀。
曹操决定东征刘备。
诸将皆说:“与您争夺天下的人是袁绍,如今袁绍要来讨战,您却弃之不顾,而要东征刘备,倘若袁绍乘机从背后进攻,该怎么办呢?”
曹操说:“刘备是人杰,现在不除掉他,以后一定会成为心腹大患。袁绍虽然有远大的志向,但反应迟钝,不会马上出兵。”
于是,急速进军,以迅雷不及掩耳之势击破刘备,刘备逃奔袁绍处。
袁绍是当时北方最强大的一股势力,也是曹操统一北方最强大的敌人。
袁氏一门,自袁绍曾祖袁安以下,“四世居三公位”,“门生故吏遍于天下”,势力本就很大。
后袁绍取得冀、并、幽、青四州之地,实力大增,有军队数十万人。
袁绍以其长子袁谭、次子袁熙、外甥高干分守青、幽、并三州,后方稳固,兵精粮足。
他挑选精兵十万、战马万匹,志在一举消灭曹操。
建安五年(200年),袁绍命大将颜良等进兵白马,自率大军进屯黎阳,向曹操发动进攻,拉开了大战的序幕。
曹操的实力比袁绍弱得多,曹操所占的黄河以南地区,是残破不堪、尚未恢复生产的四战之地,物资储备也不如袁绍。
袁绍大军来攻,许都震动。
曹操安慰众将,分析了袁绍的性格缺陷:“吾知绍之为人,志大而智小,色厉而胆薄,忌克而少威。”
虽然“兵多而分画不明,将骄而众令不一”,在这种情况下,袁绍地盘虽大,粮草虽足,但只能是“为我奉也”。
正是因为对袁绍有很深的认识,曹操才敢于在袁绍将要大军压境之时抽身去进攻刘备。
四月,曹操亲自率兵北上解白马之围,他采纳谋士荀攸之计——先进军延津,做出要渡河袭击袁军的态势,吸引袁军分兵西向,然后突然转向迅速赶往白马。
曹操军突然杀到,袁军措手不及,颜良被将军关羽斩首,袁军大败,白马之围遂解。
曹操救出白马军民,沿黄河西撤。
袁绍闻知,立即命文丑、刘备渡河追赶曹操。
曹操见追兵渐近,命军士解鞍放马,并置辎重于道。
袁军追兵大至,争抢辎重,阵形混乱。
曹操率领仅有的骑兵突然杀出,大破追兵,阵斩文丑。
曹操初战得胜,主动撤军,继续扼守官渡。
八月,袁绍大军连营而进,东西数十里,依沙堆为屯,进逼官渡。
曹操分兵坚守营垒,伺机而动。
袁军向曹营发动猛攻,先是作高橹、起土山,由上向曹营中射箭,接着又挖地道,欲从地下袭击曹营,皆被曹操以设投石机、挖掘沟壑之法破解。
两军一攻一守,相持近二个月。
久战之下,曹操处境极为困难。
十月,袁绍从河北运来粮草万余车,派大将淳于琼等带万余人沿途护送,夜宿于离袁绍大营四十里的乌巢。
这时,袁绍谋士许攸因向袁绍献偷袭许都之计不成,且在河北的家眷犯法被抓,心生悔恨,而来投曹操,献计让曹操偷袭乌巢。
曹操大喜,跣足出迎。
之后亲率精锐步骑五千人,军队人衔枚,马勒口,打着袁军旗帜,乘夜从小路偷袭乌巢。
曹操军至乌巢,命四面放火,袁军大乱,淳于琼拒营死守。
袁绍闻知,急忙派兵救援。