公元前299年,秦王派人送信与楚怀王,约他在武关相会,当面结盟。大臣昭睢劝怀王发兵自守,不去赴约,认为秦为虎狼之国、言而无信;怀王的儿子子兰却劝怀王前去赴约。楚怀王听从了子兰的话,动身前去秦国。秦国命一个将军诈扮为秦王,并在武关埋下伏兵。楚怀王一到,秦国便关闭关门,劫持了楚怀王,把他带到秦都咸阳。到咸阳后,又强迫楚怀王在章台宫像藩臣一样朝见秦王,并威胁他,要他割地给秦国。楚怀王坚决不答应,秦国便把他扣留在咸阳。
楚国大臣见怀王被扣,为安定国家,便迎立在齐国为质的太子为楚王,是为楚顷襄王,并把这个消息告诉秦国。秦王恼羞成怒,派秦军出武关攻楚,杀楚军5万人,攻下16座城池。
公元前297年,楚怀王从秦国逃跑。秦国发现后,立即派军队封锁了通往楚国的所有道路。楚怀王只好从小路逃到了赵国;后来,他又准备逃到魏国去,途中被秦国人抓了回去。第二年,楚怀王在秦国羞怒成疾,客死秦国。