曹操的谋士对曹操说:“观刘备有雄才而甚得众心,终不为人下,不如早图之。”意思是劝曹操要杀掉刘备。曹操却回答说:“方今收英雄时也,杀人而失天下之心,不可。”
建安二年,曹操征张绣。张绣先投降,后又反复,曹操被圢了一个措手不及,大败而归。建安三年春,曹操再征张绣。刘表派兵援助张绣,曹军腹背受敌,又听到袁绍将要攻许,遂退兵。袁绍很想拉拢张绣,以便南北两路出兵夹攻曹操。
建安四年冬,就在袁绍进攻的前夕,张绣听从谋士贾诩的劝告,又归降了曹操曹操非常高兴,封张绣为列侯,食邑二千户,此在曹魏代的封侯中,封户是最多的。
袁术和吕布,一个在扬州,一个在徐州,结为儿女亲家,但关系时好时坏。建安二年,袁术称帝,遣使清吕布送女完婚。吕布先允许,送女在路继而后悔,追回绝婚。袁术大怒,发步骑数万,七道进攻吕布,为吕布所破。
曹操乘机东征袁术,袁术败走淮南。建安三年九月,曹操攻吕布,围下邳(今江苏睢宁县西北),引沂、泗水灌下邳城。吕布手下的宋宪等举城降。吕布求为曹操将,曹操不允,缢杀之袁术被曹操所败后,困顿淮南,又遇天旱地荒,士民冻馁,极为狼狈他打算通过徐州、青州,北投袁绍。
曹操派刘备带兵去徐州截击。袁术不得过,想折回寿春,发病死在路上刘备在许,深得曹操的器重。曹操对刘备说:“今天下英雄,唯使君与操耳。本初(袁绍字)之徒,不足数也。”
当曹操派刘备去徐州邀击袁术时,谋士们都反对,谋士程昱等对曹操说:“公前日不图备,昱等诚不及也。今借之以兵,必有异心。”刘备离开许都前,曾与外戚董承等受献帝衣带中密诏诛曹操。刘备到徐州后,立即派人与袁绍联络,共同反对曹操。
曹操对刘备是很重视的,他决不会让刘备在徐州站住脚。他计划在袁绍出兵之前,先消灭刘备。他手下的将军们都说:“与公争天下者,袁绍也。今绍方来而弃之东,绍乘人后,若何?”曹操说,“夫刘备,人杰也,今不击,必为后患。袁绍虽有大志,而见事迟,必不动也。”
谋士郭嘉也赞同曹操先灭刘备。刘备到徐州还未来得及整顿,曹操大军一到,刘备战败,只好经青州,北投袁绍。这一战,从决策到胜利回师,都在建安五年正月之内。
而袁绍也正像曹操所估计的,“见事迟,必不动”,待曹操回师北屯官渡(今河南中牟县东北),袁绍还没有动。至此,袁术、吕布死,张绣降,刘备败。在经过这几次军事胜利以后许地被四面包围的形势已转化为稳定的局面。至于刘表,这是个划地自守的人,曹操根本看不起他。