汉高帝元年(公元前206年),刘邦攻占秦都咸阳。11月,刘邦部下曹无伤密告项羽:刘邦欲称王关中。项羽大怒,派大将英布率四十万大军攻破刘邦军队扼守的函谷关,并接连拿下新丰、鸿门(今陕西临渔东北),欲与刘邦决一死战。面对强大的军事压力,刘邦只好暂时向项羽屈服,但项羽并不肯就此罢休,在其谋臣范增的建议下,在鸿门设宴,准备于席间刺杀刘邦。
刘邦赴宴如同虎口做客,去之危险,不去又不行。张良向刘邦分析了项羽其人,决心随刘邦赴宴,同项羽展开一场心理战,以谨慎而灵活的策略保护刘邦。
席间,刘邦、张良首先回顾了楚汉联盟的历史,揭露小人进谗,造成彼此误会,项羽理屈词穷,无言以对,只好马曹无伤抛出来当替罪羊。刘邦取得了第一回合的胜利。
范增在席间屡次暗示项羽速杀刘邦,项羽犹豫不决,不愿贸然行事。计谋多端的范增又从帐外找来勇士项庄,以舞剑助兴为名,伺机杀刘邦。这时,张良的好友项伯(项羽的叔父)看出破绽,也拔剑对舞,以身掩护刘邦,使项庄难以下手。
在这千钧一发之际,张良托词走出帐外,命武将樊啥闯入帐内保驾。樊啥仗剑执盾入帐,目视项羽,怒发冲冠。项羽骇然,以酒相慰。樊啥借酒发挥,面斥项羽听信流言蜚语,诛害有功之人。项羽瞳目结舌,只好命项庄停止舞剑。此时,刘邦说自己要上厕所,在樊啥等护卫下,飞奔而去。
张良估计刘邦已走远,这才回到帐内,辞谢道:“沛公(刘邦)酒量不大,身体不舒服,不能亲自辞谢大王。现备下白璧玉斗各一双,献给大王和范将军。”项羽忙问刘邦哪里去了?张良回答:已返回军中。项羽无可奈何,只好收下宝物,不了了之。范增气得把玉斗摔到地上,愤怒地说:“夺项王天下的人,一定是沛公!”
由于张良的谋划,刘、项这场惊心动魄的斗争,终以项、范枉费心机、功败垂成而结束。