公元前207年(秦二世三年),刘邦、项羽相继率兵入关,推翻了秦王朝。按楚怀王的约定:“先入定关中者王之”,刘邦先入咸阳,本应为关中王即汉王。但项羽早有称霸天下之志,且部众已有40余万,多于刘邦10万兵力的三倍。刘邦自知不是项羽的对手,将部众撤出咸阳屯驻霸上,但派部分兵力守住函谷关。项羽的间谍、刘邦的左司马曹无伤向项羽告密说:“沛公有意称王于关中,要将秦的所有珍宝据为己有。”项羽大怒地说:“明日一早,饱餐士卒,出兵攻破刘邦的军队。”张良的好友、项羽的叔父项伯,连日赶至霸上私见张良,向其说明项羽的部署,要张良和他一起逃离刘营。但张良不肯叛主并向刘邦报告了项伯的来意,还建议刘邦接见项伯,暂时化解与项营的矛盾。
刘邦接受张良的建议,热情的会见项伯说:“我入关以后,秋毫不犯,吏、民均造册存籍,府库公产全部加封,等待项将军来接收。之所以派兵入住函谷关,是为防备盗贼窜入或有其他变故,并不是阻挡项将军。我守在这里,日夜盼望项将军来接收,怎敢反叛呢’请向将军进言,详细说明刘邦之心。”刘邦还与项伯约定了儿女婚姻。项伯答应了刘邦,并要刘邦次日来项营谢罪,随之连夜返回项营,向项羽详细地叙述刘邦的话,并要项羽“善待刘邦”。项羽认为其叔项伯之言有理。
次晨,刘邦带张良、樊哙等百多人随从来见项羽,不等项羽发问,就把向项伯讲的一番话更加委婉地讲给项羽,最后又说:“我们本应在一起庆贺反秦斗争的胜利,可现在有小人制造谣言,挑拨我们两人之间的关系而产生了误会。”项羽听了刘邦的一番表白,信以为真,并坦率地对刘邦说:“你的左司马曹无伤对我讲,你反对我进入关中,所以我才信以为真,不然的话,我怎么会对你产生这些误会呢!”接着,项羽和项伯就在“鸿门”宴请了刘邦。项羽的谋士范增和刘邦的谋士张良分别作陪。
范增本想借“鸿门宴”之机,铲除争天下之对手刘邦,但见项羽已被刘邦的花言巧语所迷惑,就借故离开宴席,把项羽的从弟项庄找来,令他以舞剑助兴为名刺杀刘邦。项庄在舞剑中剑尖一再指向刘邦。项伯看出了项庄的杀机,于是也参与舞剑,阻挡项庄的剑锋,以身体来保护刘邦,项庄难以得手。张良机警地离开宴席,将情形讲给了在外等候的樊哙。樊哙怒气冲冲地闯进了宴会厅,站在张良后边,怒视着项羽。项羽忙问:“你是什么人?”张良怕发生冲突,急忙解释说:“他是沛公参乘樊哙。”项羽见樊哙一表威武的勇士风度,称赞说:“真是一名壮士,让他喝酒,并送给猪肘吃。”樊哙就乘机发表了一番有利于刘邦的言论。项羽听了樊哙的一番话,叫他“坐下”,樊哙坐在了张良后面。