項羽的軍隊有四十萬人,駐紮在新豐縣鴻門;劉邦的軍隊有十萬人,駐紮在霸上。范增勸告項羽說:“劉邦在崤山以東時,貪圖財物,愛好美女。現在進入關中,財物一點都不要,婦女一個也不親近,這他的志向不小。我叫人去看過他那裡的雲氣,都是龍虎形狀,成為五彩的顏色,這是天子的雲氣啊。趕快攻打,不要失掉時機!”
楚國的左尹項伯這個人,是項羽的叔父,平時一向與侯張良友好。張良這時候跟隨著劉邦。項伯就連夜騎馬趕到劉邦軍中,私下會見了張良,詳細把事情告訴張良,想叫張良和他一起離開劉邦,說:“不跟我走將會一起被殺。”張良說:“我替韓王護送沛公入關,沛公現在有急難,我逃跑離開是不講道義的,我不能不告訴他。”
張良就進去,把情況詳細告訴劉邦。劉邦大吃一驚,說:“怎樣應付這件事呢?”張良說:“誰替大王獻出這個計策的?”劉邦回答說:“淺陋無知的人勸我說:‘把守住函谷關,不要讓諸侯進來,秦國所有的地盤都可以由你稱王了。’所以我聽信了他的話。”張良說:“估計大王的軍隊能夠抵擋住項王的軍隊嗎?”劉邦沉默一會兒說:“自然是不如人家,將怎麼辦呢?”張良說:“請讓我去告訴項伯,說沛公不敢背叛項王。”劉邦說:“你怎麼和項伯有交情的?”張良說:“在秦朝的時候,項伯和我有交往,項伯殺了人,我使他活了下來;現在有了緊急的情況,所以幸虧他來告訴我。”劉邦說:“他和你的年齡,誰大誰小?”張良說:“他比我大。”劉邦說:“你替我把他請進來,我得用對待兄長的禮節待他。”張良出去,邀請項伯。
項伯立即進來見劉邦。劉邦就奉上一杯酒為項伯祝福,並約定為親家,說:“我進入關中,極小的財物都不敢沾染,登記官吏,人民,封閉了收藏財物的府庫,以等待將軍的到來。之所以派遣官兵去把守函谷關的原因,是為了防備其它盜賊的進入和意外變故。日日夜夜盼望著將軍的到來,怎麼敢反叛呢!希望你項伯詳細地說明,我是不敢忘恩負義的。”項伯答應了,跟劉邦說:“明天你不能不早些來親自向項王謝罪。”劉邦說:“好。”
於是項伯又在夜裡離開,回到項羽軍營裡,就把劉邦的話全部報告項王。就趁機說:“劉邦不先攻破關中,您怎麼敢進來呢?現在人家有大功你卻要打人家,這是不仁義的。不如就趁機友好地款待他。”項王答應了。
劉邦第二天帶領一百多人馬來見項羽,到達鴻門,謝罪說:“我和將軍合力攻打秦國,將軍在黃河以北作戰。我在黃河以南作戰,然而自己沒有料想到能夠先入關攻破秦國,能夠在這裡再看到將軍您。現在有小人的流言,使將軍和我有了隔閡……”項羽說:“這是你左司馬曹無傷說的。不然的話,我怎麼會這樣呢?”
項羽當天就趁此機會留劉邦同他飲酒。項羽、項伯面向東坐;亞父面向南坐──亞父,就是范增;劉邦面向北坐;張良面向西陪坐。范增多次使眼色給項羽,舉起他所佩帶的玉玦向項羽示意多次,項羽默默地沒有反應。范增站起來,出去召來項莊,對項莊說:“君王的為人心腸太軟,不忍下手。你進去上前祝酒,祝酒完了,請求舞劍助興,趁機把劉邦擊倒在座位上,殺掉他。不然的話,你們都將被他所俘虜!”項莊就進去祝酒。祝酒完了,說:“君王和沛公飲酒,軍營裡沒有什麼可以用來娛樂,請讓我舞劍助興吧。”項羽說:“好。”項莊就拔出劍舞起來。項伯也拔出劍舞起來,並常常像鳥一樣張開翅膀一樣掩護劉邦,項莊始終得不到機會刺殺劉邦。
於是張良到軍門外召見樊噲。樊噲說:“今天的事情怎樣?”張良說:“非常危急!現在項莊拔劍起舞,他的用意常常在沛公身上。”樊噲說:“這太緊迫了!請讓我進去守衛在沛公身旁,竭力保護他。”樊噲就帶著劍拿著盾牌進入軍門。