之后,刘项二人还攻陈留,未下。这时秦将章邯大破项梁于定陶,项梁本人亦战死。刘项二人大惊,两人商量后决定放弃陈留,还军东归。刘项二人分兵,项羽军驻彭城西、吕臣军驻彭城东,而沛公军驻砀。
怀王迁都
项梁之死,使诸侯震怖。而秦军更是挟战胜余威常追亡逐北。章邯经过一连番胜利,认为楚国已不足虑,于是北上进攻赵国。攻下邯郸后迁其民于河内。而赵军退守巨鹿,章邯率军进围赵王歇与赵相张耳于巨鹿。
这时楚怀王把都城由盱眙迁至彭城,并项羽军与吕臣军自将。封项羽为长安侯,任鲁公;封沛公刘邦为武安侯,任砀郡长,将本部兵驻砀。以吕臣为司徒,其父吕青为令尹。经过一番调整之后,楚国局势稳定下来。
入关灭秦
沛公西征
赵王与张耳困于巨鹿,遣使至楚向楚国求救。楚怀王经过商议后答应救赵。但为了分散秦军力量,决定派一支部队西向直接攻秦。北路楚军以宋义为主将,西路军以刘邦为主将。约定谁先入关中,谁就是关中王。
当时由于秦军军势正壮,楚国上下皆不看好西征,都不愿意领军西征。于是他们以沛公为西征军统帅西征,借口是刘邦为人宽厚,可以减少西进阻力。而项羽则因为叔父之死,积极要求随沛公西征。但楚诸老将皆以项羽为人“僄悍滑贼”及“所过皆残灭”不利于西征为由拒绝了项羽的要求,让他担任北路军的次将北上救赵。
两攻昌邑
沛公军由砀出兵,北上先行收集陈胜、项梁的散卒。至成阳,与秦军夹壁杠里。沛公军出击秦军,大破秦军,秦将王离逃走。接着,沛公引兵西进,遇彭越于昌邑(今山东巨野县大谢湖镇昌邑村)。两人合力攻昌邑,未下,沛公还军至栗(今河南夏邑)。在栗,遇刚武侯,夺其军,沛公军队增加了四千多人。接着与魏将皇欣、魏申徒武蒲军合攻昌邑,又没攻下。沛公刘邦决定舍弃昌邑不打,率军西行。