楚怀王二十三年(前306年),楚王得知身为宣太后外族的向寿很得秦王重用,就重赂向寿。向寿将杜阳地赠给了楚国作为回报。同年,韩国想要请求秦国归还自己武遂,怕触怒楚国,就派唐客说服楚王支持这件事。于是楚王派使者赴秦,替韩国索要武遂,甘茂就许诺把武遂归还给韩国。这时甘茂与向寿争权,苏代为韩出使秦国,建议向寿不要再倚仗楚国,而应通过游说楚国把颍川归还给韩国的方式,与韩国交好,来与甘茂相争。向寿同意了,但楚王没有答应这件事。之后甘茂便把武遂交割给了韩国,向寿则攻讦甘茂迫使其出走。
同年,秦归韩武遂后,齐王因不愿看到秦楚联合,写信劝楚王加入合纵。熊槐采纳昭雎的建议,一边交好齐、韩,一边厚待秦国重臣樗里疾,再挟齐韩之势来迫使秦国割地赂楚。熊槐的这一策略,在短期内一度“取地于秦”,达到了“不战而屈人之兵”的效果;但从长远来看,却使楚国信誉尽失,为垂沙之战埋下了隐患。
楚怀王二十六年(前303年),齐、魏、韩以楚国背叛合纵盟约为由,攻打楚国。楚国用太子熊横为质,换取秦国的援军。双方休战。同年或次年,楚国以新城为主郡,来防备秦国从宜阳的进攻,与秦国的关系出现裂痕。
楚怀王二十七年(前302年),楚太子在秦斗殴,杀死了秦国的一位大夫,逃回楚国,使得秦楚关系进一步恶化。这一年,秦国与韩、魏会盟,向魏国归还前一年攻取的蒲阪,列国形势发生了变化,楚国的北方几国几乎都站到了楚国的对立面。
次年,楚怀王二十八年(前301年),楚国与齐、韩、魏、秦四国之间爆发垂沙之战。
在本次战役中,孟尝君田文担心秦国还会像前年一样救援楚国,为了离间秦楚关系,田文便欺骗楚王说齐国欲与楚国合纵伐秦,楚王答应。然而这时,齐魏韩却出尔反尔,一起进攻楚国的方城(南阳地区),而秦国因知悉楚国先前想要伐秦,也不救楚国。
因此,楚国在孤立无援,楚将唐眜率楚军主力在泚水与齐魏韩联军对峙六月之久,最终被迫在垂沙与联军主将匡章进行决战,三国联军大破楚军,攻占了楚国宛(后世河南宛城)、叶(后世河南叶县)之北的土地,主将唐昧阵亡。此外,楚臣昭雎在重丘抵御秦军,一度取胜,守住了重丘。
同年,秦国攻打楚国的新城。次年,即楚怀王二十九年(前300年),新城沦陷,秦军斩首二万,杀楚将景缺。
此后,楚王熊槐恐惧,欲割让给齐国六座城池,以太子为质,来向齐国求和。但昭雎认为,可以同时与秦国和谈,齐国害怕楚、秦修好,就不会向楚国索要土地。楚王熊槐听从了他的建议,一边派景翠、昭应送太子入齐为质,与齐国达成了休战协议;另一边派景鲤、苏厉入秦和谈,用近万把弓弩、四十万箭矢赎回了秦国此年侵占的新城。
早先,秦、楚支持的韩公子几瑟与公子伯婴、公子咎争夺太子之位,又与齐、魏支持的大臣公叔争权。楚国大臣郑强出使韩国时,为帮助几瑟夺权,矫诏许诺待几瑟成功后楚国会把新城、阳翟割让给韩国。楚王得知后大怒,想治罪郑强,郑强却辩解说不管事成与否楚国都可以反悔,楚王竟便不治罪郑强。不过最终公子伯婴被立为太子。
楚怀王二十八年(前301年)垂沙之战前夕,韩与齐、魏合纵欲攻楚,公叔便趁机纳齐军入新郑,用以固其位、并迫使几瑟出走至楚。同年,景鲤出使韩国时,曾设法阻止伯婴去秦国为质。