秦二世三年(公元前207 年)十月,楚国上将军宋义率领军队来到安阳县,驻留四十六日不率军前进。项羽说:“秦军包围赵军,战事十分危急,应该迅速带兵渡过黄河。我们楚军攻击秦军的外围,赵军则在城内呼应,这样一定能打败秦军了!”
楚国上将军宋义准备让秦赵两军先斗,待到秦军疲惫之时再进攻。而这时天气寒冷,军中粮食不足,要靠赵国供给,所以项羽认为宋义的计策并不可行。十一月,项羽早晨进见宋义,就在他的营帐中斩下了他的头,下令全军说:“宋义与齐国合谋反叛楚国,楚国暗中命令我项籍杀宋义!”在这时,将领们都被震慑,没人敢有异议,都说:“首先建立楚国的,是将军家族,现在将军你是在诛杀谋乱的臣子。”于是相议拥立项羽为临时上将军,并派人向楚怀王报告,怀王便任命项羽为上将军。
秦国供应军粮的甬道连接到了黄河边,围攻赵国巨鹿的秦将王离见粮食供给充足,便加紧攻打巨鹿。巨鹿城内粮食耗尽,兵卒人数少,张耳多次派人召请陈馀前来救巨鹿。陈馀估计因兵员少,不能战胜秦军,便不敢前去救巨鹿。过了几个月,张耳大怒,埋怨陈馀,派人前去责备陈馀说:“当初我和你约定为生死之交,现在赵王和我早晚就会战死,而你掌握着兵卒几万人,不肯来相救,哪里能说什么同生共死!如果信守前言,为什么不与我一起同秦军拼命!况且也许有十分之一二能保全。”陈馀说:“我估计前往巨鹿不仅不能救赵军,还会白白葬送全军。我之所以不去一起赴死,是想为赵王、张君报复秦国。现在一定要共同赴死,就像把肉块丢给饿虎一样,有什么好处呢!”来使约请陈馀出兵共同战死。陈馀于是让他们带领五千人先试攻秦军,到秦军阵前交战,五千人全部战死。在这时,齐国的军队、燕国的军队都来援救赵国。张耳的儿子张敖也到北面收集代地的兵卒,收得一万多人。张敖带领军队来到,与诸侯军队都在陈馀军旁边驻守营垒,不敢攻击秦军。
项羽杀死了卿子冠军宋义,声威已震动楚国,于是派遣当阳君、蒲将军率领士卒二万人渡过黄河援救巨鹿,交战稍有胜利,便截断了秦所筑的粮道,阻断了王离军队的粮食供给。陈馀又向项羽请求派出救兵。项羽于是带领全军渡过黄河,并把船全部沉没到黄河中,打破釜、甑等炊具,烧毁庐舍,带上三天的干粮,以表示士卒要决死战斗,没有一人存侥幸生还之心。
到了巨鹿城外,包围王离军队,与秦军遭遇,经过九次大战,大败秦军。诸侯军队这时才敢合击秦军,俘虏了王离。在这时,楚军在诸侯军中最勇猛,诸侯军来援救巨鹿的有十多个营垒,没有哪个营垒敢开营出兵。到楚军攻击秦军时,诸侯将领在营垒上观战,楚军战士没有不是以一当十的,他们的呼声震动天地,诸侯军队个个恐惧。
楚军打败秦军后,项羽召见各诸侯将领,诸侯将领进入项羽的营门,个个都屈膝前行,没有人敢仰头看项羽。项羽从此才成为诸侯的上将军,各路诸侯都服从他的指挥。