曹操将汉献帝迎到许都后不久,袁术割据淮南,将要称帝,孙策千方百计脱离了袁术的控制,割据江东;吕布击败了刘备,夺了徐州,对曹操构成了巨大威胁;张绣驻扎在宛城,向南连接荆州的刘表,成为曹操的肘腋之患;袁绍在河北和公孙瓒火拼,给曹操提供了解决吕布、张绣和袁术等人的充足时间。
在荀彧等人的建议下,他将第一个征讨的目标指向了宛城的张绣。公元197年正月,曹操率大军讨伐张绣,张绣自知不敌,不战而降。曹操有一个嗜好,他不仅要征服别人的地盘,还要征服这别人的女人。张绣投降后,他见张绣族叔张济的遗孀颇有几分姿色,便将她纳为姬妾,张绣对曹操怀恨在心。
曹操听说张绣不高兴,秘密准备杀掉张绣。不料,有人向张绣告密,张绣得知后,在贾诩的建议下,奇袭曹操大营,曹操被杀的措手不及,典韦为了救曹操,主动殿后,掩护曹操脱身,曹操骑马逃走。
典韦率领几十名士兵殿后,张绣的士兵将典韦和其士兵团团围住,典韦挥舞长戟左右搏击,随着张绣的士兵越来越多,典韦的士兵都被张绣的士兵用矛给刺死了,只剩典韦一人孤身奋战,典韦全身数十处受伤,拒不投降,奋力向前突围冲杀,突然伤口暴裂,血涌而出,典韦怒目大骂而死。
曹操在逃亡中,座骑被张绣军射杀,曹操从马上跌落,长子曹昂把自己的坐骑让给曹操,自己步行,张绣军追至,曹昂和曹操的侄子曹安民奋力拒敌,一并战死。
张绣率部队偷袭时,曹军一片混乱,只有于禁整顿好部队,有秩序的撤回。路上,于禁见到青州兵抢掠百姓,数落他们,并派兵进行攻击,青州兵逃走,去向曹操告状。于禁到达曹操驻地附近后,先安营扎寨,没有立即去拜见曹操。有人对于禁说:“青州兵已经先去告你的状了,您赶快去向曹公解释。”于禁说:“敌人就在后面,随时都会赶到,不先安营扎寨作好准备,怎么迎敌?曹公英明,随意诬告我他怎么会信呢?”于是,命士兵挖好壕沟,安好营寨后,才去拜见曹操,报告情况。曹操听了于禁的报告后很高兴,对于禁说:“张绣突然背叛,我也狼狈不堪,将军在混乱中能整顿好队伍,巩固营垒,即使是古代名将,也不会做的比你更好!”
曹操返回许都,听说典韦战死后,为之痛哭,派间谍取回他的尸体,亲自临哭,曹操追思典韦,拜其子典满为司马。
曹操正妻丁夫人得知儿子曹昂战死后痛哭,大骂曹操:“你害死了我的儿子,从此我没什么可留恋的了!”丁夫人伤心的回到了故乡,不愿再回到曹操身边,不久,曹操亲自去丁夫人的家乡找她,让丁夫人跟他回去,丁夫人一直默不作声,始终都不理曹操,二人从此断绝夫妻关系,丁夫人怕曹操再来家乡找她,后来离家出走,不知所踪。曹操病危时,自认时日无多,叹息说:“假如人死后还有灵的话,子脩如果问我他的母亲在哪,我该怎么回答啊!”
色字头上一把刀啊,曹操因为看中了一个颇有几分姿色的张济的遗孀,强行纳她为妾,惹怒了十分敬重叔叔张济的张绣,张绣让曹操付出了惨重的代价:嫡长子曹昂、侄子曹安民、大将典韦三人为了救他而死。
宛城之战对曹操而言,影响极为深远。曹昂是曹操的长子,是理所当然的继承人,如果曹昂没死的那么早,或许就不会有之后夺嫡之争的严重内耗。
曹操回许昌不久,袁术自行称帝。袁术奢侈荒淫,横征暴敛,使江淮地区残破不堪,民多饥死,部众离心。曹操正因为妻离子亡憋着一肚子火,袁术居然敢自立称帝,曹操还不把他往死里打,把一肚子火全发泄在袁术身上。