曹操有了自己的根據地,又挾天子於許昌,此時他無論是為了擴張勢力,還是為了解除後患之憂,東征徐州進攻呂布都成為勢在必行之舉。公元198年九月,呂布應袁術的請求,派高順攻擊暫居在沛縣的劉備,曹操則遣大將夏侯惇出兵營救劉備,結果反被高順擊敗。曹操於是親自率兵征討徐州,圍攻下邳,對呂布發起了進攻。
曹操率軍到達下邳城下後,他先派人去勸降呂布。呂布見到曹操的使臣後本欲投降,但陳宮等人勸呂布說:“曹公遠來,不能久戰。將軍如果以步騎出屯城外,我則率剩餘部眾閉守在城內,如果曹公攻將軍,我就引兵出城攻曹公後方;如果曹公隻攻城,那將軍可在外救城。不過幾個月,曹公軍糧食畢盡,到時候,隻要攻擊他就可以取勝了。”呂布聽後認為可行,就答應了陳宮的計策。可很快,呂布就改變了主意。呂布在出城前先回到府中和妻子告別,而呂布的妻子聽說了陳宮的計策後就對呂布說:“過去曹氏待陳宮如赤子,陳宮仍舍棄曹操歸順了我們。今天將軍雖對陳宮厚待,但也超不過曹氏,卻要將全城托付給他,舍棄我和孩子,孤軍遠出嗎?將軍出城以後,一旦有變,我還會是將軍的妻子嗎?”呂布聽了妻子的話,便放棄了陳宮的計策。他先是派人去向袁術求救,然後自己帶著千餘騎兵出城與曹操交戰,戰敗後他迅速退回到城中,保城不出,而袁術的救兵則遲遲沒有到。呂布就這樣失去了取得勝利的機會。
盡管呂布已失去了奪取勝利的唯一機會,但下邳城厚,並不容易攻破,曹操便掘泗水灌城。大水環城,令城牆鬆動,一時間城中人心惶惶,將帥意誌消沉。這時又發生了一件偶然事件,更加速了呂布的失敗。一天,呂布的部將侯成讓手下人牧一匹名馬,不想那部下卻騎馬叛變了。侯成發現後立即策馬急追,把那叛變的部下和馬都追了回來。諸將聽說後,都帶禮物來向侯成祝賀,侯成於是設酒肉款待諸將,並先拿酒去見呂布說:“蒙將軍威靈,我追回了寶馬,諸將都來祝賀,我設酒肉,未敢先嚐,特先來獻給將軍。”呂布先前曾頒布過禁酒令,嚴禁將士飲酒。此時侯成拿酒來見他,呂布就憤怒地說:“我禁酒,而你卻私自釀酒,是為了要用酒來害我嗎?”呂布的這番話說得實在不怎麽樣。命令是死的,人是活的,因一禁酒令掃了諸將的興,更懷疑自己的愛將有謀害自己的意思,這實在很傷人。