這時,劉邦聞東陽寧君與秦嘉立景駒為楚假王,在留(今沛縣東南),於是投奔景駒,欲借軍攻豐。
在去投奔景駒的路上,遇見了也要投奔景駒的張良。
兩人於是兵合一處。張良與劉邦二人見麵後,一交談,兩人大有相見恨晚之意。
於是張良放棄投奔景名駒的念頭,直接投奔到劉邦這邊。劉邦以張良為廄將。
這時秦將章邯派別將司馬尼攻略楚地,屠相(今安徽淮北市),至碭(今河南永城芒山鎮。
於是沛公與東陽寧率軍向西,迎擊司馬尼,在蕭縣西與秦軍展開戰鬥,結果不利,劉邦與東陽寧君退至留。
補充軍隊和糧草後,再次進攻秦軍,三日取碭,得到軍卒五六千人。接著乘勝攻取了下邑。
這次,劉邦認為自己軍隊差不多,從下邑出發,再次攻豐,結果仍然沒攻下。
這時聽說項梁在薛,於是留下軍隊圍豐,自己率領百餘騎至薛見項梁。
項梁益沛公軍五千、五大夫將十人,三攻豐邑。雍齒不敵,逃奔魏國。
立楚懷王後,項梁率軍北上救齊趙,在亢父、東阿大破秦軍。
這時齊軍因田間、田都、田角之故,引兵還齊。隻有楚軍追擊秦軍。
於是項梁下令楚軍分軍,以劉邦、項羽為帥,率楚軍一部攻城陽。劉項二人率軍攻下城陽,屠之。
然後追擊秦軍至濮陽東,再次大破秦軍。秦軍這時得到補充,軍勢複振,守濮陽、環水。
劉項二人不與之戰,繞過進攻定陶。定陶未下,放棄,西攻雍丘(今河南杞縣)。沛公將曹參大破秦兵,斬殺三川守李由,並俘虜秦侯一人。
項梁之死,使諸侯震怖。而秦軍更是挾戰勝餘威常追亡逐北。
章邯經過一連番勝利,認為楚國已不足慮,於是北上進攻趙國。攻下邯鄲後遷其民於河內。而趙軍退守距鹿,章邯率軍進圍趙王歇與趙相張耳於巨鹿。
這時楚懷王把都城由盱眙遷至彭城,並項羽軍與呂臣軍自將。
封項羽為長安侯,任魯公;封沛公劉邦為武安侯,任碭郡長,將本部兵駐碭。以呂臣為司徒,其父呂青為令尹。經過一番調整之後,楚國局勢穩定下來。
趙王與張耳困於巨鹿,遣使至楚向楚國求救。楚懷王經過商議後答應救趙。
但為了分散秦軍力量,決定派一支部隊西向直接攻秦。北路楚軍以宋義為主將,西路軍以劉邦為主將。
約定誰先入關中,誰就是關中王。當時由於秦軍軍勢正壯,楚國上下皆不看好西征,都不願意領軍西征。
於是他們以沛公為西征軍統帥西征,借口是劉邦為人寬厚,可以減少西進阻力。而項羽則因為叔父之死,積極要求隨沛公西征。