程昱向曹操獻計說:“關羽有萬人之敵的勇猛,非用智謀不能取勝。現在可以派劉備手下投降計程車兵,進入下邳見關羽,假裝是逃回來的,埋伏在城中作為內應。然後引誘關羽出戰,假裝戰敗,誘使他進入其他地方,再用精兵截斷他的歸路,然後就可以勸說他投降了。”曹操聽從了他的計策,立即命令徐州的降兵數十人,直接投奔下邳去投降關羽。關羽以為是舊部下,收留了他們而沒有懷疑。
第二天,夏侯惇作為先鋒,領兵五千來挑戰。關羽沒有出戰,夏侯惇就派人在城下辱罵。關羽大怒,帶領三千人馬出城,與夏侯惇交戰。大約戰了十多個回合,夏侯惇撥馬就走。關羽趕來,夏侯惇一邊戰鬥一邊退走。關羽大約追趕了二十里,擔心下邳有失,就提兵返回。只聽得一聲炮響,左邊有徐晃,右邊有許褚,兩隊軍馬截住了去路。關羽想要衝過去,但兩邊伏兵排下硬弩百張,箭像飛蝗一樣射來。關羽無法透過,只好勒兵再回,與徐晃、許褚接住交戰。關羽奮力殺退了二人,引軍想回下邳,但夏侯惇又截住廝殺。關羽戰到天晚,無路可歸,只得來到一座土山上,引兵在山頭屯駐,暫時歇息。曹兵則團團將土山圍住。
關羽在山上遙望下邳城中火光沖天,原來是那些詐降計程車兵偷偷開啟了城門,曹操親自帶領大軍殺入城中。曹操命令舉火以迷惑關羽的心志。關羽見下邳火起,心中非常驚慌,連夜幾次衝下山來,但都被亂箭射回。
一直捱到天亮,關羽再想整頓兵馬衝下山去突圍,忽然看見一人跑馬上山來,一看是張遼。關羽迎上去說:“文遠你是來與我交戰的嗎?”張遼說:“不是。我想起我們舊日的情義,特地來相見。”於是兩人棄刀下馬,相互敘禮完畢,坐在山頂。關羽說:“文遠你莫非是來勸說我投降的嗎?”張遼說:“不是。昔日你救過我的命,今天我怎能不救你呢?”關羽說:“那麼文遠你是打算幫助我嗎?”張遼說:“也不是。”關羽說:“你既不幫助我,來這裡幹什麼?”張遼說:“玄德現在不知存亡,翼德也生死未卜。昨夜曹公已經攻破了下邳,但軍民都沒有受到傷害。曹公還派人護衛玄德的家眷,不許驚擾她們。他這樣對待你們,我特地來告訴你。”
關羽聽後大怒說:“你這話分明是勸說我投降!我現在雖然身處絕境,但我視死如歸。你趕快離開吧,我馬上就要下山迎戰了。”張遼大笑說:“兄長你這樣說豈不是要被天下人恥笑嗎?”關羽說:“我為了忠義而死怎麼會被天下人恥笑呢?”張遼說:“兄長你現在如果戰死就有三大罪狀。”關羽說:“你且說說我有哪三大罪狀?”張遼說:“當初劉使君與你結義的時候誓同生死現在劉使君剛剛失敗你就要戰死。如果將來劉使君復出想尋求你的幫助卻再也找不到你了。這豈不是違背了當年的盟誓嗎?這是第一大罪狀。劉使君把他的家眷託付給你你現在戰死她們將無所依靠。你辜負了劉使君的重託。這是第二大罪狀。你武藝超群又通曉經史不想著和劉使君一起匡扶漢室卻只想著逞匹夫之勇去赴湯蹈火。這怎麼能算是義呢?這是第三大罪狀。兄長你有這三大罪狀我不得不告訴你。”
關羽聽後沉吟了一會兒說:“你說我有三大罪狀那麼你想讓我怎麼辦呢?”張遼說:“現在四面都是曹公的軍隊你如果不投降就必死無疑。白白送死沒有任何好處。不如暫時投降曹公然後再打聽劉使君的音信。如果知道他在哪裡就立刻去投奔他。這樣一來可以保全劉使君的家眷二來不違背桃園的盟約三來也可以留下有用的身體。有這三大便利兄長你應該仔細考慮。”關羽說:“你說的有三大便利但我有三個條件。如果丞相能答應我這三個條件我就立刻卸甲投降。如果他不答應我寧願受三罪而死。”張遼說:“丞相寬宏大量有什麼不能容納的呢?我願意聽聽你的三個條件。”關羽說:“第一我與皇叔發誓要共同扶持漢室我現