陈婴等别部将领,共同参与拥立了楚怀王。拥立楚怀王后,项梁率军北上救援齐魏,在亢父、东阿等地大破秦军。这时齐军因内部矛盾而撤还,只有楚军追击秦军。在这期间,刘邦率领曹参、周勃等人与章邯的车骑部队交战,将其击退,平复蒙邑、虞县、爰戚县、东缗县、栗县、啮桑县、宛朐县、单父县等大量秦军占领的魏国城池,史称“定魏地”。
项梁下令楚军分军,以刘邦、项羽领兵,率楚军一部攻城阳,刘项二人率军攻下城阳,屠之。然后追击秦军至濮阳东,再次大破秦军,秦军这时得到增援,军势再次振兴,据守濮阳,放水环绕城池。刘项二人于是绕过濮阳,转攻定陶。定陶未攻下后,又向西攻打雍丘,刘项两军大破秦兵,刘邦麾下曹参,斩杀三川郡的郡守李由,并俘虏秦侯一人。
正当刘项两军进攻陈留之时,章邯大破项梁于定陶,项梁战死。刘项二人大惊,在商量后决定放弃陈留,还军东归。刘项二人分兵,项羽军驻彭城西、吕臣军驻彭城东,而刘邦军驻砀县。项梁之死,使诸侯震怖,秦军挟战胜余威常追亡逐北,章邯经过连番胜利,认为楚国已不足虑,北上进攻赵国,攻下邯郸后把民众都迁徙到河内,并毁掉邯郸的城墙。而赵军退守巨鹿,章邯率军进围赵王歇与赵相张耳于巨鹿。
楚怀王把都城由盱眙迁至彭城,将吕臣与项羽的军队合并起来自己统领,封刘邦为武安侯,升任砀郡长,统率砀郡兵马;项羽为长安侯,任鲁公。经过一番调整之后,楚国局势稳定下来,刘邦此时已统筹整个砀郡旧魏地区兵力,其地位实际比项羽的县公要高。
与此同时,被困于巨鹿的赵王歇与张耳多次遣使向楚国求援,楚怀王答应救赵。楚国北路军以宋义为主将,西路军以刘邦为主将。楚怀王与诸将约定:谁先攻入并平定关中,谁就可在关中称王。
刘邦军往西攻城略地,一路收集陈胜、项梁的散卒,经由砀县到达成阳县,先在成武县南面攻破东郡的郡尉所率领的部队,又在成阳县南面攻打王离军,在杠里与秦军对垒相持,攻破秦二军、河间守军,刘邦率领曹参、樊哙、灌婴、傅宽、郭蒙等,与秦将王离交战,大破其军。刘邦引兵西进,在昌邑遇到彭越的部队,遂与其合力进攻昌邑,没能攻下,只得返回栗县。在栗县时,刘邦遇到刚