汉元年(前206)十月,沛公的军队在各路诸侯中最先到达霸上。秦王子婴驾着白车白马,用丝绳系着脖子,封好皇帝的御玺和符节,在枳道旁投降。将领们有的说应该杀掉秦王。沛公说:“当初怀王派我攻关中,就是认为我能宽厚容人;再说人家已经投降了,又杀掉人家,这么做不吉利。”于是把秦王交给主管官吏,就向西进入城阳。沛公想留在秦宫中休息,樊哙、张良劝阻,这才下令把秦宫中的贵重宝器财物和库府都封好,然后退回来驻扎在霸上。沛公召来各县的父老和有才德有名望的人,对他们说:“父老们苦于秦朝的苛虐法令已经很久了,批评朝政得失的要灭族,相聚谈话的要处以死刑,我和诸侯们约定,谁首先进入关中就在这里做王,所以我应当当关中王。现在我和父老们约定,法律只有三条:杀人者处死刑,伤人者和抢劫者依法治罪。其余凡是秦朝的法律全部废除。所有官吏和百姓都象往常一样,安居乐业。总之,我到这里来,就是要为父老们除害,不会对你们有任何侵害,请不要害怕!再说,我所以把军队撤回霸上,是想等着各路诸侯到来,共同制定一个规约。”随即派人和秦朝的官吏一起到各县镇乡村去巡视。向民众讲明情况。秦地的百姓都非常喜悦,争着送来牛羊酒食,慰劳士兵。沛公推让不肯接受,说:“仓库里的粮食不少,并不缺乏,不想让大家破费。”人们更加高兴,唯恐沛公不在关中做秦王。
有人游说沛公说:“秦地的富足是其它地区的十倍,地理形势又好。现在听说章邯投降项羽,项羽给他的封号是雍王,在关中称王。如今要是他来了,沛公您恐怕就不能拥有这个地方了。可以赶快派军队守住函谷关,不要让诸侯军进来。并且逐步征集关中的兵卒,加强自己的实力,以便抵抗他们。”沛公认为他的话有道理,就依从了他的计策。十一月中旬,项羽果然率领诸侯军西进,想要进入函谷关。可是关门闭着。项羽听说沛公已经平定了关中,非常恼火,就派黥布等攻克了函谷关。十二月中旬,到达戏水。沛公的左司马曹无伤听说项羽发怒,想要攻打沛公,就派人去对项羽说:“沛公要在关中称王,让秦王子婴做丞相,把秦宫所有的珍宝都据为己有。“曹无伤想借此求得项羽的封赏。亚父范增劝说项羽攻打沛公,项羽正在犒劳将士,准备次日和沛公会战。这时项羽的兵力有四十万,号称百万;沛公的兵力有十万,号称二十万,实力抵不过项羽。恰巧项伯要救张良,使他不至于与沛公一起送死,趁夜来沛公军营见张良,因而有机会让项伯向项羽说了一番道理,项羽这才作罢。次日沛公带了百余名随从骑兵驱马来到鸿门见项羽,向他道歉。项羽说:“这是沛公左司马曹无伤说的,不然我怎么会这样呢?”沛公因为是带着樊哙、张良去的,才得以脱身返回。回到军营,立即杀了曹无伤。