周定王十二年(公元前595年),楚庄王派电丹出使齐国,途中必须经过宋国,庄王却又不许申丹按照当时的惯例向宋国借道申丹说:“宋国人固执死板,倘不借道,我很可能会被他们杀死。”庄王说:“若果如此,我一定会替你报仇。”
申丹至宋,果为宋人所杀。庄王闻讯大怒,投袂而起,亲率大军伐宋。九月,楚师围宋都城。宋使人至晋求救,晋人邲战之余悸未消,不愿发兵救宋,却派大夫解扬去告诉宋人不要投降,诡称晋之大军将至。解扬经过郑国赴宋,被郑人抓住献给了楚庄王。楚庄王厚待解扬,让他劝宋人投降。解扬假意答应,但在登上观察敌情的巢车与城上的宋人对话时,却告诉宋人晋国即将尽起大军前来援助。庄王以解扬背信而欲杀之,解扬说:“我完成了国君交给我的命令,这才是真正的守信。庄王于是释放了他。
楚军长期围城,从前一年九月直至周定王十三年(前594)五月,并在城外盖房种地,做出打算长期围困的样子。宋人害怕起来,执政华元亲自于夜间偷入楚营,把楚军主将子反从床上拉起来对他说:“我国已粮尽援绝,燃骨为炊,易子而食。但我们宁愿与国俱亡,也不愿订城下之盟。如果你们肯退兵30里,我们就唯命是从。”子反害怕华元用强,不得不答应华元的要求,并与他私下订立了退兵的盟约。第2天,子反将此事报告庄王,庄王命楚军后退 30 里,宋国遂与楚国结盟。此役,楚师围宋都长达9月之久,是春秋时期围城时间最长的一次。
