后来,荀彧问曹操:“您之前就知道能取胜,为什么?”曹操解释:“敌人堵住我的退路,把我逼入绝境,这反而激发了将士们的斗志,所以我知道能赢。”张绣追击曹操时,贾诩劝阻:“不能追,追了肯定败!”张绣不听,结果吃了败仗。贾诩却又登上城墙大喊:“赶紧再追,这次肯定能赢!”张绣不解:“刚才没听您的话吃了亏,现在都败了,怎么还追?”贾诩说:“形势变了,听我的准没错!”张绣向来信任贾诩,就收拢残兵再次追击,果然大获全胜。他忍不住问贾诩:“我用精兵追撤退的曹军,您说必败;用败兵打取胜的曹军,您说必胜,为什么这么准?”贾诩笑着解释:“很简单!您虽然会打仗,但不是曹操的对手。曹操撤退时,肯定亲自断后,所以第一次追击必败。曹操攻打您时没犯错,却突然撤兵,肯定是许县出了急事。他打败您后,急于赶路,只会派普通将领断后,这些人不是您的对手,所以第二次追击必胜!”张绣听了,对贾诩佩服得五体投地。
吕布又和袁术勾搭上了,派中郎将高顺和北地太守张辽攻打刘备。曹操派夏侯惇前去救援,结果被高顺打得大败。这年秋天九月,高顺攻破沛城,抓走了刘备的老婆孩子,刘备只能一个人仓皇逃命。
曹操打算亲自去打吕布,手下将领纷纷劝阻:“刘表和张绣在咱们后方虎视眈眈,现在跑那么远去打吕布,太危险了!”荀攸却分析说:“刘表、张绣刚吃了败仗,短时间不敢轻举妄动。吕布勇猛又有袁术撑腰,如果让他在淮河、泗水一带站稳脚跟,肯定会有更多豪杰响应。现在他刚背叛朝廷,内部人心不齐,正是进攻的好时机!”曹操觉得有道理,当即拍板出兵。
这次出征,泰山的山贼首领臧霸、孙观等人都投靠了吕布。曹操在梁地和刘备会合,接着打到彭城。陈宫劝吕布:“咱们应该主动出击,以逸待劳,肯定能赢!”吕布却自信满满:“不如等他们来攻,到时候把他们逼进泗水,一网打尽!”结果十月,曹操一怒之下血洗彭城。广陵太守陈登带着郡里的军队当先锋,一路杀到下邳。吕布亲自上阵,和曹操打了几次,每次都被打得落花流水,只能龟缩在城里不敢露头。
曹操给吕布写了封信,劝他认清形势。吕布有点害怕,想投降。陈宫却拦住他:“曹操远道而来,粮草撑不了多久。将军您带骑兵在城外驻扎,我率步兵守城。曹军攻您,我就从背后偷袭;曹军攻城,您就从外面夹击。不出一个月,他们粮尽必败!”吕布觉得有道理,准备让陈宫和高顺守城,自己去截断曹操粮道。
可吕布的老婆却在旁边吹枕头风:“陈宫和高顺向来不和,您一走,他俩肯定没法齐心守城。万一出了差错,您连个落脚的地方都没有!再说曹操以前对陈宫就像对亲儿子,他都能背叛曹操来投靠咱们。现在您对陈宫还不如曹操,却要把全城和妻儿老小托付给他,独自带兵外出?要是出了事,我还能继续当您的妻子吗?”吕布一听,顿时没了主意,只好偷偷派许汜、王楷向袁术求救。
袁术生气地说:“吕布之前不肯把女儿嫁给我儿子,现在活该倒霉,还来求我干什么?”许汜、王楷赶紧劝道:“您现在不救吕布,等他完蛋了,您也危险!唇亡齿寒啊!”袁术这才勉强答应出兵声援。吕布怕袁术因为没得到女儿不肯真心救援,就用布把女儿缠在身上绑到马背上,想趁夜偷偷送出去。结果刚出城就碰上曹操的军队,一番混战,根本冲不出去,只能又退了回来。
河内太守张杨和吕布关系不错,想帮忙却不敢直接出兵,只能在东市虚张声势。十一月,张杨的部将杨丑杀了张杨想向曹操邀功,另一个部将眭固又杀了杨丑,带着人马北上投奔袁绍。张杨这人性格太软,部下谋反被发现,他只会哭着原谅,从来不惩罚,最终因此丢了性命。
曹操挖壕沟把下邳城围得水泄不通,时间一长,士兵们也疲惫不堪,曹操都想撤军了。荀攸和郭嘉连忙劝阻:“吕布有勇无谋,现在屡战屡败,士气早就没了。陈宫虽然有脑子,但反应太慢。趁现在吕布还没缓过劲,陈宫也没定下新计策,咱们引沂水、泗水灌城,一定能破城!”
果然,下邳被淹后,吕布的日子越来越难过。他站在城墙上对曹操的士兵喊话:“兄弟们别逼我了,我这就向曹公投降!”陈宫急得跳脚:“曹操那是逆贼!投降他就像拿鸡蛋砸石头,死路一条!”
这时又出了岔子:吕布的部将侯成丢了一匹名马,后来又找了回来,其他将领凑钱买酒肉向他道贺。侯成先给吕布送去一份,没想到吕布勃然大怒:“我下令禁酒,你们竟敢酿酒,是不是想灌醉我谋反?”侯成又气又怕,十二月癸酉日,联合宋宪、魏续等人,突然把陈宫和高顺绑了,带着手下向曹操投降。