齐国经过宋国境内，没有向宋国提出通行申请，被华元俘获。 华元以为这是楚国侮辱宋国，所以将申舟杀了。不久，楚庄王包围宋都商丘，长达七个月。宋国很多人饿死，"易子而食，析骸以炊"。楚人还在城外盖起了房舍，表示要久留。但宋人宁可死到净尽，不肯做耻辱的屈服。晋国一直不来救援。宋文公派华元议和。华元夜里私下去见楚国将帅子反，乘子反不备，挥着利刃逼迫他立誓，把楚军撤退三十里。子反报告给楚庄王。楚庄王因此而议和。前589年，宋文公去世。周简王七年(前579年，鲁成公十二年、晋厉公二年、宋共公十年、楚共王十二年