项羽在救赵消灭秦军主力后,也率军向关中进发。
汉王元年十二月,他来到函谷关。一见关门紧闭,又听说刘邦已平定关中,项羽大怒,当即命当阳君英布攻破函谷关,接着率40万大军开到戏下(今陕西临潼东北戏水西岸)。
这时,刘邦的左司马曹无伤听说项羽正发怒,为了求封,就暗中派人向项羽告状说:“沛公欲王关中,让子婴做相国,把秦的珍宝都据为己有。”
项羽一听,更是火上加油,加之谋士范增也劝项羽赶快除掉刘邦,因此他下令犒劳士兵,明天一早就向刘邦进攻。刘邦当时只有10万人,在兵力上完全处于劣势。
在大难就要临头之际,刘邦却来了救星。这个救星就是项羽的叔叔项伯。
项伯和刘邦的谋臣张良交往甚密,张良曾救过他的命。他听说项羽马上就要向刘邦进攻,连夜驰入刘邦军中,想把张良带走。
张良却对他说:“沛公有大难,我作为谋臣不能一声不吭就走,要走也得把这个事情告诉他。”
刘邦听了大惊,要张良赶快考虑对策。
张良说:“你现在应亲自去对项伯说明,你不敢背叛项王。”
刘邦对项伯以好酒招待,并约为儿女亲家,然后说:“我入关后,秋毫不敢所取,登记吏民,封存府库,以等待将军(指项羽)。所以遣将守关。是为防备盗贼和其他意外。我日夜盼望将军到来,怎么敢反叛呢!希望您能替我向将军说明这个情况。”
项伯答应,对刘邦说:“你明天拂晓定要亲自去对项王赔礼。”刘邦答应后,项伯即连夜返回,把刘邦的话全部告诉了项羽,并劝告项羽说:“沛公不先破关中,你能顺利入关吗?人家有大功,不该这样对待,还是好好相待才是。”项羽表示同意,取消了进攻计划。
第二天一早,刘邦率张良、樊哙和一百多个骑兵来到项羽的营帐鸿门,向项羽赔礼。项羽宴请刘邦,席上明争暗斗,剑拔弩张,演出了历史上著名的“鸿门宴”。
鸿门宴后,项羽即率兵西屠咸阳,杀秦王子婴,烧秦宫室,掳掠财物妇女,然后东归。
到汉王元年(公元前206年)二月,他以最高统帅的身份,尊怀王为义帝,立诸将为王、侯。诸侯王共分封了19个:项羽自立为西楚霸王,管辖梁、楚九郡,都彭城,立刘邦为汉王,管辖巴、蜀、汉中41县,都南郑(今陕西南郑)。
四月,项羽遣诸侯各自就国。刘邦没有办法,也只好前往南郑。项羽当时只给了他3万士兵,加上自愿随从的几万人,也不到10万人。
为了防备其他诸侯的袭击,也为了向项羽表示不再东出争夺天下,刘邦接受张良建议,把通往汉中的栈道烧了。这样,从陈胜开始反秦到秦灭亡,长达三年的战乱暂时平息。