刘邦很得意地进入了咸阳城,以关中王自居。看着富丽堂皇的宫殿,刘邦有些留恋起来,准备就此住下,享受享受。樊哙劝他注意天下还没有平定,别忘了秦的前车之鉴。刘邦根本听不进去,直到张良亲自来劝,他这才认识到了问题的严重性。于是,刘邦将军队撤退到了灞上。
刘邦到达灞上之后,便召集当地的名士,和他们约法三章:杀人者死,伤人及盗抵罪。其他秦朝的苛刻法制一律废除,这使他得到了民心支持。
项羽在打败章邯,迫使他投降之后,也领兵直奔关中而来。范曾劝他趁机除掉刘邦这个对手,项羽就下令准备,要在第二天进攻。这时的刘邦在兵力上无法和强大的项羽相抗衡,他只有十万军队,不可能战胜项羽的四十万精兵。最后是项羽的叔叔项伯救了刘邦:项伯和刘邦的谋士张良很要好,见项羽要进攻了,便连夜潜入营中找到张良,让他赶紧走,以免被杀。张良却说不能丢下刘邦,就将消息透露给了刘邦。惊慌之下,刘邦赶忙向张良要计策,张良让刘邦赶紧去见项伯,说明自己没有野心和项羽争夺王位。
刘邦依计约到项伯,说明自己并无称王野心,并于项伯约成儿女亲家。项伯当天夜里就返回了军营,他对项羽说:因为沛公先行进入关中,为我们扫除了入关的障碍,我们这才能顺利地通过函谷关,沛公是有功劳的人,我们不应该猜疑他,应该真诚相待。项羽听了,便决定不再进攻刘邦。
第二天,刘邦来到了项羽的军营,只带了樊哙、张良和一百名精锐亲兵。到了项羽的大帐鸿门,当面向迎接他的项羽赔礼道歉。项羽请刘邦入内赴宴,项羽的亚父范增,一直主张杀掉刘邦,在酒宴上,一再示意项羽发令,但项羽却犹豫不决,默然不应。范增召项庄舞剑为酒宴助兴,趁机杀掉刘邦,项伯为保护刘邦,也拨剑起舞,掩护了刘邦,没有成功。这就是成语项庄舞剑,意在沛公的由来。后来刘邦借故离开,回到了大营。
鸿门宴之后,项羽便领兵西进,分封各路将军为王,刘邦被封为汉王,领地是巴、蜀和汉中共四十一县,国都为南郑(现在的陕西南郑)。项羽自己称为西楚霸王,掌握军队最高统帅权,被尊为义帝。