刘备在吕布之下,屈居两年,他的耐心确是可佩,但是只要吕布对他一击,他新招的一万多兵就溃不成军,丢掉小沛,也未免太不行了。吕布此时,部下有高顺、张辽、陈宫,可谓人才济济,对外也有袁术作为声援。刘备呢,虽有勇敌万夫的关张二人,一则地盘太小,仅有区区小沛,二则对外与袁术结了新仇,与曹操又未能化除旧恨(在吕布偷他的徐州之时,并没有如何帮忙),可以说十分孤立。在小沛之东是吕布的下邳,在小沛之南,是袁术的淮河,在小沛之北与西,是曹操的兖州与豫州。
正如他当初在陶谦卵翼之下,担任“豫州刺史”之时,我们这位“豫州牧”刘备,所管的仅有全豫州约六分之一:沛国。还有六分之五,梁国、陈国、鲁国,及颍川、汝南二郡,都在曹操手上。
沛国的首县是小沛,小沛一去,也就无所谓沛国了。刘备又是独自逃走,不管家眷,于是再度把老婆儿子丢掉。这一次丢的老婆,除了一位原配(?)以外,还有糜夫人在内。她是糜竺的妹妹,是刘备在上一次失掉下邳,辗转于海西一带时,被哥哥送给刘备的。
刘备和关张等人,向开封逃去。刘备是否就一口气逃到许昌,投奔曹操呢?不是的,他不是一个逃难的人,只求活命或吃饭的,他一定是在离开小沛不远的地方,就派了代表,到许昌去,请求救兵。
曹操之恨吕布,远甚于恨刘备。刘备不过是请他吃过败仗,叫他拿不到陶谦的郯城。吕布却偷过他的兖州,几乎叫他不能见人。而且吕布与袁术颇有勾结,袁术已经在建安二年春天僭号称帝,与许昌的汉家朝廷势不两立,所以曹操就决定派了夏侯惇带兵去救刘备。
夏侯惇到了徐州,帮不上刘备的忙,反而被吕布射瞎了一只眼睛,吕布的射术是有名的。
夏侯惇与曹操本是堂房弟兄(曹操的父亲曹嵩原姓夏侯,抱给太监曹腾做过房儿子,才改姓曹),曹操一怒,自己带兵去打吕布。他在建安三年九月间出兵,十月到了彭城,活捉彭城国相侯谐(汉朝在景帝之后,每个王国都是国相管理行政,国王不当家,只管领岁费,吃饭享乐)。曹操老脾气又发,把彭城的人民一齐屠杀干净。
曹操的军队到达下邳,吕布率领骑兵迎击,部下一个猛将成广,被曹操活俘,吕布只好退入城中,派人向袁术请救。
袁术出兵,但离开寿春没有十几里,遇到一支曹操的兵,略一接触,便缩了回去,吕布也算是错交了他。
曹操把下邳城团团围住,围了一两个月,毫无结果。吕布常常开城出来打,打得曹操的兵甚为疲倦,颇想罢兵回去。
荀彧的侄儿荀攸劝曹操不必退兵,再加紧进攻。郭嘉也是同样主张。刘备在旁边,自然惟恐曹操不干。曹操决定下一个辣手,他把沂水与泗水引了来灌下邳城,城里面装满了水,人民与军士只好住到屋顶与城墙上去。吕布的大本营也搬到一个城楼,叫做白门楼。
袁术在寿春,绝对没有再派兵来救的意思。吕布当初答应过把女儿嫁给袁术的儿子,又听了陈登的话,在女儿已经送走以后,中途把女儿追了回来,并且使袁术派来七路大兵,由张勋率领,大攻徐州,吕布费了很大力气,又用了反间计,把张勋与同来的韩暹、杨奉拆开,才躲过了危险,这是建安二年的事。
吕布现在困守在白门楼。急得没有主意,以为袁术之不肯来救,莫非怪他不肯送女儿给他家,想了以后,就把女儿捆了起来,绑在马上,派兵于夜间冲过曹操的围兵,送到袁术那里去。
女儿是送走了,依然毫无救兵的消息。他又想到自己的老婆颇美(是貂蝉吗?)而关羽为人颇重义气,何不把老婆送给他,请他在刘备与曹操面前转圜?想定以后,就立刻把老婆也绑起来,当真送给关羽。关羽收下以后,就问曹操说:“可以收下吗?”曹操说:“当然可以。”过了一天,关羽又问。曹操又说:“当然可以。”后来关羽老问,曹操被他问出兴趣来,就说:“你不妨解到我这儿给我看看。”关羽于是送来吕布的老婆,曹操说:“很好,就留在我此地罢。”(以上是《蜀记》所述,不知是否可靠。)
吕布等不到关羽什么消息。他的朋友张扬才真是关心他的,张扬已经发兵,忽不料却为部下杨丑所杀。杨丑是想投降曹操。不久又有一个眭固,杀了杨丑,替张扬报仇,并且带走张扬的兵,想去投奔袁绍。曹操听到了,派了一个史涣,去打眭固,把眭固杀了,收编了张扬的兵。
吕布在白门楼毫无办法,却禁止部下喝酒。有一位将军,姓侯名成,被人偷掉了一匹马,幸而追了回来,同袍们贺他,就喝起来了,侯成并且敬了吕布一杯,被吕布痛骂,大丢面子。他怀恨在心,这时候就领头投降,绑了陈宫来见曹操。
吕布看见大势已去,自己也守不了白门楼,就下楼投降。他向曹操说:“你所怕的,不过是吕布一人,吕布现在服你了,所以天下的事已无问题。你带领步兵,我带领骑兵,还有打不平的地方么?”刘备却向曹操说:“你别听他的话,他当初对付丁原、董卓的故事,还不值得你参考么?”
曹操说:“好!”就叫人把吕布、陈宫、高顺一齐杀了(张辽却被留了下来,其后做了曹操部下第一等重要的军官)。