四年春,楚命郑伐宋。宋使华元将,郑败宋,囚华元。华元之将败,杀羊以食士。其御羊羹不及,故怨,驰入郑军,故宋师败,得囚华元。宋以兵车百乘、文马四百匹赎华元。未尽入,华元亡归宋。

宋文公在位的第四年春天,楚国强行让郑国攻打宋国。宋国派华元领兵抵抗郑国,郑国打败了宋将华元,并且生擒了他。

华元战败的原因是当初华元下令杀羊来犒劳将士们,其他的士兵都分到了羊肉汤,但是为华元驾驭马车的士兵没有分到羊肉汤,对于这件事驾驭马车的士兵心中非常的生气,因此他在双方交战的时候,将华元拉进了郑国的军队中,宋军因此战败了,华元因此被擒拿。

宋国想要用百辆兵车、四百匹好马来换回华元,但是这些物品还没有交接完,华元就逃回了宋国。

十四年,楚庄王围郑。郑伯降楚,楚复释之。

宋文公在位的第十四年,楚庄王发兵围困郑国。郑王无奈选择了投降,没多久楚庄王又让郑国复国了。

十六年,楚使过宋,宋有前仇,执楚使。九月,楚庄王围宋。十七年,楚以围宋五月不解,宋城中急,无食,华元乃夜私见楚将子反。子反告庄王。王问:“城中何如?”曰:“析骨而炊,易子而食。”庄王曰:“诚哉言!我军亦有二日粮。”以信故,遂罢兵去。

宋文公在位的第十六年,楚国的使者经过宋国,因为宋国和楚国有仇,所以宋国就扣押了楚国的使者。

宋文公在位的第十六年的九月份,楚庄王围困了宋国。宋文公在位的第十七年,楚军围困宋国已经五个月了,宋国城中已然没有太多的粮食,情况非常危急,华元于是趁着晚上私下见了楚国的将军子反。

子反准备将这些情况告诉楚庄王。楚庄王问宋国城中的情况怎么样了,子反说已经到了非常危急的时候了。楚庄王说这是真话,我们现在也只有能够支撑两天的食物了,于是为了展现自己的信义便撤军了。