当曹操在许昌扩充势力,准备独霸中原的时候,袁绍也占据了冀、青、幽、并四个州,积聚了雄厚的经济力量和军事力量,成为北方最强大的割据力量,隔黄河与曹操抗衡。为了争夺中原地区的控制权,两军不久就展开了一场决定性的大战——官渡(今河南中牟)之战。
二牛耕地砖画公元200年,袁绍亲自率军从邺城(今河南安阳)出发,进攻许昌。那时,袁绍拥有军队数十万,而且后方巩固,兵精粮足;而曹操能用以抵抗袁绍的军队只有一两万人,并且所占据的地方战乱连绵,物资供应远不丰富。但是,袁绍固执己见,不肯听从别人意见,先后在白马(今河南滑县)、延津一带被曹操打败,损失了不少兵将。袁军接连打了两次败仗,士气非常低落。但袁绍自恃兵多,坚持率领大军渡过黄河,直逼官渡,想同曹操的主力军队进行决战。
官渡是南北交通的咽喉之地,距离许昌只有100公里。如果官渡失守,许昌就失去了屏障。因此,曹操初战胜利后,就主动撤兵退守官渡,坚壁不出,等待时机,与袁绍军队相持了长达半年之久。
这时,袁绍帐下的谋士不和,相互攻击。一个名叫许攸的人趁机投奔了曹操,告诉曹操袁绍刚刚在乌巢(今河南延津东南)囤积了1万车的军粮,并建议曹操出奇兵偷袭乌巢。曹操接受了这个建议。他率领了5000精锐骑兵,夜袭乌巢,放火烧掉了袁绍的军粮。正在官渡前线的袁绍听说乌巢被袭,吓得目瞪口呆。袁军军心也发生动摇,内部开始混乱。袁军的几位大将见大势已去,都投降了曹操。
袁绍还想将计就计,袭击曹操大本营,切断他的归路。没想到袁军进到曹营时,却受到曹军的腹背夹击,袁军一下子损失了七八万人。袁绍连吃败仗,粮食被烧,众叛亲离,只好带着剩下的800骑兵,渡过黄河,向北逃窜。
官渡之战,曹操以弱胜强,一举消灭了袁绍的主力。他乘胜追击,继续向袁绍占领的地区进军,很快就统一了北方。