刘表则响应了袁绍攻曹的号召,派人策动诸州郡阴谋反曹,而阳安都尉李通则拒绝了袁绍、刘表的反曹号召。除了阳安郡之外,豫州的其余诸郡大多响应袁绍的号召。
关中诸将表示中立,既不助袁,也不助曹。
十一月,张绣准备同意,贾诩却当着张绣的面回绝了袁绍的来使,准确地指出袁绍不能容人,而投降曹操有三点优势:曹操挟天子令诸侯,名正言顺;曹操兵力较弱,更愿意拉拢盟友;曹操志向远大,一定能够不计前嫌。张绣听从贾诩的建议,率众归顺曹操,被拜为扬武将军。
战争过程
前期
建安五年(200年)正月,车骑将军董承、偏将军王服、越骑校尉种辑接受了汉献帝的衣带诏,欲诛杀曹操,但事泄,被曹操夷灭三族。袁绍终于获得了名正言顺的开战理由,于是,袁绍奉衣带诏讨伐曹操,派陈琳书写檄文并公开发布,檄文中把曹操骂得无法忍受。袁、曹两家公开宣战。
当曹操正部署对袁绍作战时,参与了衣带诏之谋的刘备起兵反曹。刘备占领下邳,屯据沛县(今江苏沛县)。刘备军增至数万人,并与袁绍联系,打算合力攻曹。曹操为保持许都与青、兖二州的联系,避免两面作战,于次年二月亲自率精兵东击刘备,迅速占领沛县,转而进攻下邳,迫降关羽。刘备全军溃败,只身逃往河北投奔袁绍。当曹、刘作战正酣之时,袁绍别驾田丰建议袁绍“举军而袭其后”,但袁绍以幼子有病为辞拒绝采纳,致使曹操从容击败刘备回军官渡。
曹操派遣臧霸、孙观、孙康等人牵制青州刺史袁谭。
二月,袁绍进军黎阳,企图渡河寻求与曹军主力决战。他首先派大将郭图、淳于琼、颜良进攻白马的东郡太守刘延,企图夺取黄河南岸要点,以保障主力渡河。
四月,曹操为争取主动,求得初战的胜利,亲自率兵北上解救白马之围。此时谋士荀攸认为袁绍兵多,建议声东击西,分散其兵力,先引兵至延津,伪装渡河攻袁绍后方,使袁绍分兵向西,然后遣轻骑迅速袭击进攻白马的袁军,攻其不备,定可击败颜良。曹操采纳了这一建议,袁绍果然分兵延津,令正在进攻白马的郭图、淳于琼率军向西,挺进延津。沮授劝阻袁绍道:“颜良的性格急促狭小,虽然骁勇,但不可以让他独自担任大将。”袁绍不从。
在郭图、淳于琼等人率军奔赴延津后,曹操乃乘机率领轻兵迅速袭击颜良。曹军以中郎将张辽、偏将军关羽为前锋,曹操亲率裨将军徐晃等人继其后。关羽望见了颜良麾盖(大将所乘戎车,设幢麾、张盖),在张辽军队与颜良军队交战之时,关羽策马冲到颜良身边,在万众之中刺死颜良,又拔出腰间佩刀斩其首级而归。袁军诸将都不能挡住关羽。袁军溃散。
曹操解了白马之围后,迁徙白马的百姓沿黄河向西撤退[21]。袁绍率军渡河追击,军至延津南,派大将文丑与刘备继续率兵追击曹军,曹操当时的骑兵不足六百,驻于南阪(在白马南)下,而袁军达五六千骑,尚有步兵在后跟进。曹操令士卒解鞍放马,并故意将辎重丢弃道旁。袁军果然中计,纷纷争抢财物。曹操突然挥动着自己手中所持“麾”。下令发起攻击。徐晃等人翻身上马,终于击败袁军,杀了文丑(文丑为乱军所杀,并不是关羽斩杀),顺利退回官渡。颜良、文丑都是河北名将,却被一战而斩,袁绍军队的锐气被挫伤。