宋文公十六年,即公元前五九五年,楚国的使者经过宋国,因为宋国与楚国有仇,便把楚国使者抓了起来。
这一年的九月,楚庄王围攻宋国。
宋文公十七年,公元前五九四年,公元前五九四年楚国包围宋国五月不退,宋国国都已经没有粮食了,宋文公只能派乐婴齐到晋国去求援。
晋国国君晋景公本是打算救援宋国的,但是晋国大臣伯宗认为,鞭长不及,且楚国势强,楚庄王一代霸主,不可力敌也。
晋景公认同了他的建议,便没有派兵救援宋国,只是派了解扬到宋国,让宋国不让向楚国投降。
楚军围宋日久矣,楚庄王原本打算撤兵,但是大夫申犀、申叔劝楚庄王不要撤兵,相反要在宋国建房、种田。
宋文公因此感到害怕,派出了大将华元趁着夜色进入楚国军营见楚国大将子反,子反将这个情况告诉了楚庄王。
楚庄王问华元,宋都城内如何了?
华元是这样回答楚庄王的,析骨而炊,易子而食。
什么意思?
劈开人的骨头当柴烧,互相交换子女当做食物吃。
楚庄王又说了什么呢?
他感叹华元对他说了实话,其实楚军也只剩下两天的军粮了。
于是,楚庄王方才从宋国退兵。
宋文公二十二年,即公元前五八九年,宋文公去世,他的儿子公子瑕继位,是为宋共公。