公元前208年,武信君项梁已在东阿击败了章邯的军队,就领兵西进,等到达定陶时,再度打垮秦军。项羽、刘邦又在雍丘与秦军交战,大败秦军,斩杀了三川郡守李由。项梁于是更加轻视秦军,显露出骄傲的神色。宋义便规劝道:“打了胜仗后,如若将领骄傲、士兵怠惰,必定会失败。现在士兵已有些怠惰了,而秦兵却在一天天地增多,我替您担心啊!”但项梁不听从劝告,竟又派宋义出使齐国。宋义在途中遇到齐国的使者高陵君显,问他道:“您将要去会见武信君吗?”显回答说:“是啊。”宋义道:“我论定武信君必会失败。您慢点去当可免遭一死,快步赶去就将遭受祸殃。”这时二世调动全部军队增援章邯攻打楚军,在定陶大败楚军,项梁战死。
时值连阴雨,自七月到九月雨落不止。项羽、刘邦攻打外黄,未能攻下,便撤军,转攻陈留,闻听项梁已死,楚兵惊恐,项羽、刘邦就和将军吕臣一起率军东撤,并把怀王芈心从盱眙迁出,建都彭城。吕臣驻军彭城东面,项羽驻扎在彭城西面,刘邦则屯驻砀地。
魏豹率军攻克了故魏国的二十多个城市,楚怀王即封立魏豹为魏王。
闰九月,楚怀王合并吕臣、项羽二人的军队,由自己统率,任命刘邦为砀郡长,封为武安侯,统领砀郡兵马;封项羽为长安侯,号称鲁公;任命吕臣为司徒,他的父亲吕青为令尹。
章邯已经击垮了项梁的部队,便认为楚地的兵事不值得忧虑,就渡过黄河,向北攻打赵,大败赵军,而后率军抵达邯郸,将城中百姓全部迁徙到河内,铲平了邯郸的城郭。张耳与赵王歇逃入钜鹿城,秦将王离领兵将钜鹿团团围住。陈馀向北收集常山的兵士,获得几万人,驻扎在钜鹿北面,章邯驻军钜鹿南面的棘原。赵于是几次向楚请求救援。
这时齐国的使者高陵君显正在楚,就进见楚怀王说:“宋义推论武信君的军队必败,过了不几天,项军果然失败。军队尚未开战就预见到了败亡的征兆,这可以说是颇懂得兵法了!”楚怀王即召宋义前来商议事情,十分喜欢他,因此便任命他为上将军,项羽为次将,范增为末将,领兵去援救赵国。各路部队的将领也都归宋义统领,号称他为“卿子冠军”。
当初,楚怀王与各路将领约定:“谁先攻入关中,谁就在关中称王。”这时候,秦军还很强大,经常乘胜追击逃敌,故楚将中没有一个人认为先入关是有利的,唯独项羽怨恨秦军杀了项梁,激愤不已,愿同刘邦一起西进入关。楚怀王手下的老将们都说:“项羽这个人,迅捷勇猛、狡诈凶残,曾经在攻破襄城时,将城中军民一个不留地统统活埋了。凡是他经过之处,无不遭到残杀毁灭。况且楚军几次进攻,在前的陈胜、项梁都失败了,因此不如改派敦厚老成的长者,以仁义为号召,率军向西进发,对秦国的父老兄弟们讲明道理。而秦国父老兄弟为他们君主的暴政所苦累已经很久了,如若现在真能有位宽厚的长者前往,不施侵夺暴虐,关中应当是可以攻下的了。项羽不可派遣,只有刘邦向来宽宏大量,有长者气度,可以派遣。”楚怀王于是没有答应项羽的请求,而派刘邦西进夺取土地,收容陈胜、项梁的散兵游勇,以攻击秦军。
刘邦率军取道砀,到达阳城、杠里,攻打秦军营垒,击败了秦军的两支部队。
公元前207年,冬季,十月,齐将田都背叛相国田荣的指令,领兵协助楚援救赵。
宋义带领军队到达安阳,停留了四十六天不进兵。项羽说:“秦军围困赵军形势紧急,应火速领兵渡黄河,如此由楚军在外攻击,赵军在内接应,打败秦军就是一定的了!”宋义道:“不对。要拍打叮咬牛身的大虻虫,而不可以消灭牛毛中的小虮虱。现在秦军攻赵,打胜了,军队就会疲惫,我们即可乘秦军疲惫之机发起进攻;打不胜,我们就率军擂鼓西进,这样便必定能够攻克秦了。所以不如先让秦、赵两军相斗。身披铠甲、手持锐利的武器冲锋陷阵,我不如您;但运筹帷幄、制定策略,您却不如我。”因此在军中下达命令说崐:“凡是猛如虎,狠如羊,贪如狼,倔强不服从指挥的人,一律处斩!”
宋义随后派他的儿子宋襄去齐为相,并亲自把他送到无盐县,大摆宴席招待宾客。当时天气寒冷,大雨不停,士兵饥寒交迫。项羽便道:“本当合力攻秦,却长久地滞留不前。而今年成荒歉,百姓贫困,士兵吃的是蔬菜拌杂豆子,军中没有存粮,竟还要设酒宴盛会宾客,不领兵渡黄河,取用赵地的粮食作军粮,与赵军合力击秦,却说什么‘乘秦军疲惫之机发动进攻’。以秦的强盛攻打新建立的赵,势必战胜。赵被攻占,秦军便将更加强大,哪里还会有疲惫的机会可乘!况且我军新近刚刚吃了败仗,楚王坐立不安,集中起全国的兵力交付给将军,国家安危,在此一举。现在不体恤士兵,而去屈从于一己私利,不是以国家为重的忠臣啊!”
十一月,项羽早晨去进见上将军宋义时,就在营帐中斩了宋义的头。出帐后即向军中发布号令说:“宋义与齐合谋反楚,楚王密令我杀了他!”这时,众将领都因畏惧而屈服,无人敢于抗拒,一致说:“首先拥立楚王的是将军您家中的人,如今又是您诛除了乱臣贼子。”于是就共同推立项羽为代理上将军。项羽即派人去追赶宋义的儿子宋襄,追至齐将他杀了。并遣桓楚向怀王报告情况,怀王便让项羽担任了上将军。
十二月,刘邦率军到达栗县时,遇上刚武侯,夺过他手中的部队四千多人,与自己的队伍合并起来,同魏将皇欣、武满的军队联合攻打秦军,击败了对手。
故齐国国君田建的孙子田安攻下济水以北的地区,跟随项羽援救赵。
章邯修筑甬道连接黄河,为王离供应军粮。王离军中粮食充足,即加紧攻打钜鹿。钜鹿城内粮尽兵少,张耳便几次派人去叫陈馀前来营救。陈馀估计自己兵力不足,打不过秦军,故不敢到钜鹿来。如此过了几个月,张耳勃然大怒,埋怨陈馀,派遣张、陈泽前去责备陈馀说:“当初我和你结为生死之交,而今赵王和我很快就要死了,你拥兵数万,却不肯出手救援,赴难同死的精神在哪里啊!如果真守信用,何不攻击秦军而与我们一同战死,似此还有十分之一二能打败秦军保全性命的希望。”陈馀道:“我揣测自己前去终究不能救赵,只会白白地使全军覆没。何况我之所以不和张耳同归于尽,是想为赵王、张耳向秦军报仇啊。现在一定要共同赴死,就如同把肉送给饿虎,有什么好处呢!”但张、陈泽要挟陈馀一同去死,陈馀于是便派张、陈泽率五千人先去试试秦军的力量,结果是到了那里就全军覆没了。当时,齐军、燕军都来救赵,张敖也到北面收集代地的士兵,得到一万多人,但是来后却都在陈馀军队的旁边安营所扎寨,不敢进攻秦军。
项羽已经杀了“卿子冠军”宋义,威震楚国,就派当阳君黥布和蒲将军领兵两万渡黄河援救钜鹿。战事稍稍有利,即截断章邯所修的甬道,使王离的军队粮食短缺。陈馀于是又请求增援兵力。项羽便率全军渡过黄河,都凿沉船只,砸毁锅、甑,烧掉营舍,携带三天的口粮,以此表示军队将决一死战,毫无退还之意。因此楚军一到钜鹿就包围了王离,与秦军接战,经九次交锋,大败秦军。章邯领兵退却。各国的援兵这时才敢出击秦军。即杀了苏角,俘获了王离。涉不肯报降,**而死。此时,楚军的雄威压倒了诸侯军;援救钜鹿的诸侯国的军队有营垒十多座,却都不敢发兵出击。待到楚军攻打秦军的时候,诸侯军的将领都在营垒上观战。见楚军士兵无不以一当十,喊杀声惊天动地,诸侯军人人都惊恐不已。这样打败了秦军后,项羽便召见诸侯军将领。这些将领们进入辕门时,没有一个不是跪着前行的,谁也不敢仰视。项羽从此始成为诸侯军的上将军,各路诸侯都归他统帅了。
此时赵王赵歇、张耳才得以出钜鹿城拜谢各国将领。张耳与陈馀相见,责备陈馀不肯营救赵王。待问及张、陈泽的下落时,张耳怀疑是陈馀将他两人杀了,即几次追问陈馀。陈馀发怒道:“想不到你对我的责怨如此之深啊!难道你以为我就舍不得放弃这将军的官印吗?”于是解下印信绶带,推给张耳。张耳也是愕然不肯接受。陈馀起身去上厕所,宾客中有人劝说张耳道:“我听说:‘上天的赐与如不接受,反会招致祸殃。’现在陈将军给您印信,您不接受,如此违反天意,很不吉祥。还是赶快取过来吧!”张耳便佩带上陈馀的官印,接收了他的军队。而等陈馀回来时,也颇怨恨张耳的不辞让,就急步走出,只偕同他手下的亲信几百人到黄河岸边的水泽中捕鱼猎兽去了。赵王赵歇返回信都。
春季,二月,刘邦向北攻打昌邑,遇到彭越,彭越即带领他的部队跟随了刘邦。彭越是昌邑人,经常在钜野湖沼中捕鱼,与人结伙为强盗。陈胜、项梁起事抗秦时,水泽中的青年一百多人聚合起来,前去追随彭越,说道:“请您出任首领。”彭越推辞说:“我不愿意啊。”青年们竭力请求,彭越才答应了,并与他们约定次日清晨太阳出来时集合,迟到的即斩首。第二天日出后,有十多个人晚到,最迟的直至中午才来。彭越于是抱歉地说:“我已经老了,你们执意要推举我为头领。如今到了约定时间而许多人迟到,不能够都杀掉,那么就将最后到达的一个人斩首吧。”即命校长杀那个人。大家都笑道:“哪至于这样啊!以后再不敢如此就是了。”彭越这时拉出那人杀了,设立土坛以人头祭祀,号令所属部下。部属们都惊恐万状,无人敢抬头望他。彭越随后便领兵攻夺土地,收集诸侯军中的散兵游勇,得到一千余人,即协助刘邦攻打昌邑。
昌邑城没有攻下,刘邦率军西进经过高阳。高阳人郦食其,家境贫寒,落魄飘零,做了个看管里门的小吏。刘邦部下中一名骑兵正好是郦食其的同乡,郦食其见到他时,对他说:“诸侯军将领路过高阳的有几十人,我打听得这些将领都器量狭小,好拘泥于繁文缛礼,自以为是,听不进气度豁达、抱负恢宏的言论。我还听说刘邦为人傲慢而看不起人,富于远见卓识,这真是我所愿意结交的人啊,可惜没有人为我引荐。你如果见到刘邦,就告诉他说:‘我的乡里中有个郦生,六十多岁了,身高八尺,人们都称他为狂生。但他自己却说:我不是狂生。’”这名骑兵道:“沛公不喜欢儒生,每当宾客中有戴着儒生帽子来的,沛公总是脱下他的帽子,在里面撒尿。与人谈话的时候,也常常破口大骂。所以你不可以儒生的身分前去游说他。”郦食其说:“你只管把这些话告诉他吧。”骑兵便将郦食其所嘱托的话从容地转达给了刘邦。
刘邦到了高阳的旅舍,派人召郦食其来见。郦食其一到,即进见。这时刘邦正叉开两腿坐在床上,让两个女子给他洗脚,如此便接见郦食其。郦其食进来,只是拱手高举行相见礼而不跪拜,说道:“您是想要协助秦朝攻打诸侯国呢,还是想要率领各路诸侯击败秦朝呢?”刘邦骂道:“没见识的儒生!天下的人共同受秦朝暴政苦累已经很久了,所以各国相继起兵攻秦,怎么说是帮助秦朝攻打诸侯呀!”郦食其说:“您若确是要聚集群众、会合正义的军队去讨伐暴虐无道的秦王朝,就不该如此傲慢无礼地接见年长的人!”刘邦于是停止洗脚,起身整理好衣服,请郦食其在尊客席上就坐,向他道歉。郦食其便谈起了六国合纵连横的史事。刘邦很高兴,赏饭给郦食其吃,并问道:“计策将如何制定啊?”郦食其说:“您从一群乌合之众中起事,收拢了一些散兵游勇,部众还不足一万人,就想靠此径直去攻打强大的秦朝,这即叫作用手去掏虎口哇!陈留是天下的要冲,四通八达的枢纽地区,现在该城中又贮存有许多粮食,而我恰与陈留县令交情不错,请您让我出使陈留,劝他向您投降;假如他不听从劝告,您就领兵攻城,我作内应。”刘邦于是派郦食其出发,自己率军跟随,随即降服了陈留,便号封郦食其为广野君。郦食其对他的弟弟郦商说了这些事。当时郦商就召集青年,得四千人,前来归属刘邦,刘邦任用郦商为将军,命他率领陈留的部队相随。郦食其则常常作为说客,出使各诸侯国。
三月,刘邦攻打开封,没能攻下;便西进,在白马与秦将杨熊会战,又在曲遇东面打了一仗,大败秦军。杨熊逃到荥阳,二世派使者去将他斩首示众。
夏季,四月,刘邦向南进攻颍川,屠戮了一番。因得到张良的辅助,攻取了故韩国的领地。这时赵军所属部将司马正要渡黄河进入函谷关,刘邦于是崐就向北进攻平阴,切断黄河渡口南部地区,在洛阳东面与秦军交锋。但因作战不利,向南撤出辕关,张良领兵跟随刘邦;刘邦即命韩王韩成留守阳翟,自己与张良一起南下。
六月,刘邦率军在县东面与南阳郡守吕交战,击败了秦军,夺取了南阳郡。南阳郡守败逃,回保城池,固守郡的治所宛城。刘邦领兵绕过宛城西进。张良劝他道:“您虽然想要尽快入关,但是目前秦军尚兵多势众,且又可据险顽抗,倘若现在不攻下宛城,一旦宛城守敌从背后夹击,前面又有强大的秦军阻挡,将是很危险的!”刘邦于是连夜率军抄小道返回,放倒旗帜,在天没亮时,将宛城重重围住。南阳郡守见状想自杀,他的舍人陈恢说:“想要寻死还早了点儿吧。”就翻越城墙去见刘邦说:“我听说您曾受楚怀王之约,先攻入咸阳的即在关中称王。如今您滞留在这里攻打宛城,而宛城很大,连城数十座,城内军民自认为投降也是必死无疑,故都登城坚守。现在您整日停留在这里攻城,士兵死伤的必定很多,如若您率军撤离宛城,宛城的守军又肯定要尾随追击。这样一来,您在前则耽误了先入咸阳者称王的约定,在后则有遭到强大的宛城守军夹击的忧患。我为您着想,还不如订约招降,加封南阳郡守,仍让他留守郡中,而率领他的军队一道西进。这样,那些没有投降的城邑,闻讯就会争先恐后地打开城门等候您的到来,届时您就可以通行无阻了。”刘邦说:“好!”秋季,七月,南阳郡守吕举城投降,刘邦封他为殷侯;并封给陈恢享用一千户的赋税收入。
于是刘邦率军西进,所过城邑没有不降服的。待到达丹水时,高武侯戚鳃、襄侯王陵也归降了。刘邦又回攻胡阳,遇见番君属下的将领梅,便与他一同攻打析和郦,二地都投降了。刘邦命令军队所过之处不得掳掠,秦地的百姓都非常喜悦。