曹军撤到安众县时,面对前后受敌的困境,曹操下令在夜间凿险,作伪遁之状。暗中却埋伏精兵,只等刘表与张绣的军队进入伏击圈,便大破敌军。
此战中,鬼才军师贾诩再次显示出了他高人一等的眼光。当初张绣要追击曹操时,贾诩极力反对“不可。追之必败”张绣不听,结果就被曹操设伏打得大败。这时,贾诩突然又对张绣道“追吧!这次必定大胜”张绣本已丧失信心,是在贾诩的一再要求下,才半信半疑的集合败兵,再去追击,这次果然大胜。要不是一个叫李通的人正好在此时率军前来投奔曹操,顶下了张绣的追击,曹操恐怕也很难安全撤回许都。回到穰城后的张绣立即召见贾诩“我以精兵去追曹操的退军,你说我必败;我又以败兵去追曹操的胜军,你又说我必胜。而且事实果然如你所料的一样。你究竟从何料着的啊”贾诩道“这个不难。将军虽善用兵,比曹操却仍稍逊一筹。曹操这么急着撤兵,必定是因他后方出事了。但为防我军追击,曹操必会以精兵断后。这样我军必败。但曹操一旦得胜,他急着赶回去,必不会防备我军会有第二次追击。这样我军必胜”张绣为之叹服。
7月,曹操回到许都。荀彧来问曹操“两个月前,您断定自己能在安众大破张绣,是凭什么断定的”曹操道“我军已被置之死地,自然会死战。我又设下了伏兵,岂有不胜之理”
7月,吕布再次与袁术交通,并派高顺、张辽两员大将前去攻打刘备。曹操接到刘备的求援后,便派出夏侯惇率兵前去救援,却被高顺击败(此战中,夏侯惇的左目被流矢射中,夏侯惇拔矢啖睛,是为历史上有名的一幕)9月,高顺攻破小沛,刘备单骑而逃,家小再次落入吕布手中。接着,臧霸、孙观、吴敦、尹礼、昌豨等泰山郡起义军纷纷归附吕布,吕布实力大增。
消息传到许都,曹操采纳荀攸的意见,准备亲征吕布。此时,刘备已逃到梁地。与前来亲征的曹操顺利会合,一起杀向彭城国。
10月,曹操攻下彭城国,生擒国相侯谐,并下令屠城。随后,以广陵太守陈登所率郡兵为先驱,曹操大军一路杀至吕布所在的下邳国。吕布屡次出击,皆大败,骁将成廉被俘。从此,吕布退守城中,不敢再出。
将下邳城围住之后,曹操便使出了攻心计,写信劝降吕布。吕布本来欲降,但遭陈宫反对“曹操远来,势不能久。将军可出屯于外,我守城于内。彼此相救。不出旬月,等曹军粮草吃光,自会退去。到时我们再出击,定可大胜”吕布也觉得此计可行,当场便决定由陈宫与高顺守城,自己带精兵出城,去断曹军的粮道。
可此事被吕布之妻严氏知道后,立即表示反对“陈宫、高顺二人素来不和。你一出城,二人必不能同心守城。万一有什么差池,该怎么办?且陈宫曾受曹操重用,他照样背叛曹操而投了将军。如今你对陈宫未必能有当年曹操对他更好,现在却要把妾等一家老小和全城百姓都托付给他,自己却孤军远出,就不怕生变吗”
吕布听了池不出。同时命属官许汜、王楷出城去向袁术求救。袁术道“吕布不嫁女儿给我儿子,且还曾大败我军。如今反要我去救他吗”许汜、王楷急忙答道“那都是被陈氏父子所误。如今大王与吕布是唇齿相依。吕布若被曹操所破,大王恐亦不免呢”袁术道“既如此,叫吕布把女儿送来,我自当发兵救他”
吕布听得两人的回报后也是无奈。便于一半夜,用绵裹住自己女儿的身体,缚在马上,亲自杀出城去。但却被曹兵用乱箭射回。
河内太守张杨与吕布关系向来不错,吕布还曾数度投奔过张杨。如今听说吕布在下邳城被曹操围攻,张杨倒是想救,怎奈有心无力。只能出兵东市,遥为声援。却不想为此竟导致内部生变。11月,张杨的部将杨丑杀死张杨,想投奔曹操,却马上又被另一个叫眭固的将领杀死。眭固率领着张杨的余部,屯驻在河内郡的射犬,北通袁绍。只不过对于吕布,自然也就不再支持了。
此时,曹操已将下邳城围了一个多月,久攻不下,士卒疲敝,也有归意。荀攸、郭嘉二人力谏不可,并建议曹操将沂、泗二水掘开,以灌下邳城。
在这样的情况下,吕布手下有几员将领自然心中产生了些别样的想法。反正你吕布跟过丁原、董卓、王允,号称三姓家奴。从长安逃出来后,又投奔过袁术、张杨、袁绍、刘备,那我们改换一次门庭,应该也是无可厚非的吧?
有一个叫侯成的部将先是失去名马数匹,后又幸得取回。诸将为此纷纷携酒肉前来道贺。侯成也将这些酒肉分献给吕布。谁知竟引发吕布大怒“你难道不知我已颁布了禁酒令吗?给我推出去斩了”最后在众将的求告下,才免于死罪,改为杖责。为此,侯成当然怀恨在心。
12月24日,侯成、宋宪、魏续等将便在城中率众作乱,将陈宫、高顺二人绑了后,开城出降。吕布闻变,急忙率众登上白门楼,只见楼下已全是曹军,走投无路的吕布便对左右道“你们拿着我的首级去见曹操,邀功领赏去吧”左右不忍,皆劝吕布下楼投降。
吕布也只能投