楚怀王十七年(前312年)年初,楚国调动此前北聚边境的景翠一军,包围了韩国的雍氏(后世河南长葛),韩国派冷向向秦国求援。与此同时,齐国、宋国也发兵围攻魏国的煮枣(后世山东菏泽东明)。
面对以上五国大战的局势,秦惠文王口头答应了救韩及联魏攻楚的方案,但还是心存观望。而楚怀王熊槐则派出昭鱼、屈匄在边境与秦国谈判,试图争取秦国。随后,秦国大臣甘茂力劝秦王伐楚。他和合纵方的苏秦都已看出,如果秦国不及时救援、拉拢魏韩,魏韩就会投向楚国的阵营,因此秦王下定了救韩伐楚的决心。
秦国和齐国建交之后,张仪的病也好了,于是跟盯他的楚国使者说:“我有秦王赐予我的六里封地,愿把它献给楚王。”楚国使者则说:“我奉楚王的命令,来接收商於之地六百里,从来没听说要收什么六里土地。”
张仪很无赖的说道:“只有六里,没有六百里,爱要不要。”
知道被耍的楚国使臣只得返回楚国,把张仪的话告诉楚怀王,楚怀王气的差点吐血,非常后悔没有听从陈轸的意见,秦楚关系彻底破裂,战争一触即发。但齐楚联盟破裂的更大危害还在后面。
楚怀王十七年(公元前312年)春,由于秦国已经表态,加之愤于被张仪欺骗,楚怀王熊槐决定发兵攻打秦国。陈轸劝说楚王这个时候已经不适合与秦军开战了,继续与秦国议和,一同攻打齐国,楚王不听。齐楚联盟是不打秦国,现在齐秦联盟了你去打秦国,陈轸对这个愚蠢的大王也是失望透顶了。
接下来,四头马都拉不回来的楚怀王熊槐发动了丹阳之战,派将军屈匄进攻秦国的商於;与此同时,雍氏和煮枣的战役也还在继续。在对峙中,秦军分三路反击楚军。首先,中路的魏章在丹阳(今河南西峡县以西、丹水以北地区)大破楚军,斩首八万,俘虏楚将屈匄,楚国通侯执珪之爵者死七十余人。魏章率军继续向西进攻,与西路向东进攻的甘茂会合,攻取了楚汉中六百里地(今汉水中游两岸地带),设置汉中郡。东路的樗里疾曾帮助魏章打败楚将屈匄,又帮助韩国反攻楚景翠所部得胜,接着就向东进发,帮助魏国打败齐军于濮水一带,齐师败走。魏军随后还攻打了附近的楚国襄丘。
熊槐因汉中失守而大怒,怒而兴师为大忌,再次召集全国的部队进攻秦国,发动蓝田之战。大军深入到蓝田(后世陕西省西安市蓝田县),距咸阳不到一百里,与秦军激战。此役楚国战败,并割让两座城池求和。不久之后韩魏联军攻打楚国,攻到了邓(后世河南邓州),迫使楚退兵。魏章还曾会合韩军攻楚,取得上蔡(今河南上蔡)。次年,秦国进一步攻取楚国的召陵(后世河南召陵)。丹阳、蓝田之战的惨败使得楚国元气大伤,从此由盛转衰。
楚怀王十八年(前311年),在这样的形势下,楚国不得不向秦国求和。此次秦楚谈判经历了四个阶段:
第一阶段:秦国提出归还汉中,换取楚国驱逐陈轸、召滑。由于召滑本人、楚廷亲齐派以及秦国大臣甘茂的反对,此事不了了之。
第二阶段:秦国提出归还武关之外的土地(即汉中之半),换取楚国的黔中郡。
第三阶段:楚王要求秦国交出张仪,来交换黔中郡。
第四阶段:秦相张仪至楚,被楚王囚禁,本来将要被杀。由于楚王舍不得割让黔中郡,加上张仪贿赂靳尚、郑袖为自己说情,楚王最后还是释放了张仪,而秦国也就没有得到黔中郡。两国达成了连横共识。