这一年,曹操听从枣祗、韩浩等人的建议,开始实行屯田制。刘备遭到吕布袭击,投奔曹操。程昱劝道:“依我看刘备有雄才大略,又深得民心,不会久居人下,不如趁早除掉他。”曹操回答:“如今正是招揽贤才之时,为杀一人而失天下人心,不可。”
建安二年(公元197年)正月,曹操讨伐割据宛城的张绣,驻军淯水。张绣举众投降,旋即复叛,曹操长子曹昂、侄子曹安民、猛将典韦战死(宛城之战)。曹操引兵退还舞阴,张绣派兵来攻,被曹操击退。张绣奔往穰城,与刘表联合。曹操对诸将说:“我收降张绣等人,却犯了没有立即扣押人质的错误,所以遭到了失败。我明白了失败的原因,请大家看着,从今以后我不会再失败了。”之后回到许县。[
割据淮南的袁术僭号,吕布把他的使者送到许县,袁术怒而进攻吕布,结果为吕布所破。九月,袁术侵略陈国,曹操闻讯亲自东征袁术。袁术得知曹操亲自来,便弃军而逃,留桥蕤等四将镇守。曹操到后,斩杀桥蕤等将。袁术渡淮而走,曹操也回到许县。
十一月,曹操南征荆州,到达宛城。刘表部将邓济据湖阳,曹操生擒邓济,湖阳也投降。之后曹操又攻下了舞阴。[]
建安三年(公元198年)正月,曹操回到许县。三月,曹操再次南征,围攻张绣于穰城。四月,曹操所遣的谒者裴茂率中郎将段煨讨李傕,夷三族。五月,刘表派兵救援张绣,并打算截断曹操后路。曹操引军退还,张绣追击,曹操军无法前行,于是结成连营,得以慢慢前进。曹操写信给荀彧说:“贼军紧追我军,虽然我军日行数里,但我算好了,到安众县时,一定能打败张绣。”到了安众县,张绣和刘表联军守在险要地方,曹操军前后受敌。曹操于是派人趁天黑在险要处挖凿一条地道,把辎重物资全部偷运过去,又设下伏兵。天明时,张绣军认为曹操已逃走,全军追赶。曹操便派出步兵、骑兵两面夹攻,把贼军打得大败。七月,曹操回到许都。荀彧问曹操:“