鲁昭公二十一年(公元前521年,宋元公十一年),宋国也派出了使者前往齐国求援,齐景公在上大夫晏婴的辅佐下,国力渐强,五年前齐国对未参加弥兵会盟的徐国发起了进攻,拉开了复兴霸业的序幕,并建立了齐、莒、邾、徐四国联盟。齐景公收到宋国的求援书简后,立即派出大夫乌枝鸣率兵前往宋国的鸿口附近协助戍守,正好挡在了齐登引领的吴军来袭宋国的必经之路上。
宋国的厨邑大夫(厨人濮)向乌枝鸣献策:“《军志》上说:‘先发制人可以摧毁敌人的士气,后发制人则要等待敌人士气衰竭。’何不趁敌军长途跋涉、疲劳未定,对他们发起突然袭击?如果等到华登领着吴军与华氏和向宁合兵一处,那华氏的力量就壮大了,到时候悔之不及啊!”乌枝鸣采纳了厨人濮的策略,十月十七日,宋、齐两国联军向吴军发起了猛攻,俘虏了吴军的两名统帅,但是这位华登,不愧是宋国司马华费遂的儿子,他率领残余的吴军勇猛冲杀,竟然击败了宋、齐联军。
宋、齐联军兵败,宋元公感到了威胁,他想要逃亡到他国避难,厨人濮说道:“我等小人物,愿意为国君死难,而不能护送国君逃亡,国君且待吾等与其再战!”厨人濮在守护都城的宋军之中巡行,鼓舞士气,他喊道:“挥舞旗帜的,都是国君的战士!”宋国的军士们挥舞着手中的旗帜和兵器,高喊着要保家卫国、为国君死战!宋元公在都城的东门城楼之上看到了这一场景,激情澎湃,他对众军兵喊话说:“国家亡、国君死,这也是诸位的耻辱,又岂独为孤一人之过?众将士随孤誓杀叛贼!”
齐大夫乌枝鸣也率齐军和宋军一起守卫都城商丘,他向宋元公献计道:“敌众我寡,最好是撤去守备、诱敌深入,敌人的长戈长戟和战车入城之后难以发挥作用,而我军最好都手持长剑与敌拼杀,众将士没了退路,必与敌军拼命!”宋元公采纳了乌枝鸣的计策,放敌军入城,宋、齐两国将士持剑猛扑华登带领的吴军,吴军招架不住,节节败退,宋、齐联军紧跟着追杀,厨人濮用裙子包住砍下的敌军头颅大喊:“华登已死!华登已死!”吴军在宋都商丘的新里一带被击溃,退出城去。
十一月四日,逃奔晋国的公子城也从晋国搬来了救兵。晋国派出晋卿、中军副帅荀吴率领大军救援宋国,曹国大夫翰胡也率曹军协助,齐国增派大夫苑何忌率齐军与晋、曹兵马会合在一起,卫国派出公子朝也赶来增援。七日,诸侯联军与华氏叛军在宋国都城郊外的赭丘展开激战。华貙的家臣郑翩建议将兵马列为鹳阵,他的御者则建议列为鹅阵,叛军为列阵争论不止。
诸侯联军方面,华费遂之子向宜为公子城驾御战车,庄堇为车右,率兵马冲向叛军。叛军中有吕邑封人(掌管筑城之官)华豹,勇猛无敌,于犨为他驾御战车,华貙家臣张丐为其车右,上前迎战公子城。这时公子城正要调转车头,华豹大喊“老贼休走!”公子城大怒,转身迎战华豹。公子城张弓搭箭,口中祈祷“平公(公子城父君)之灵,请护佑儿臣!”而此时华豹已将弓弦拉满射出,箭簇从公子城和向宜之间呼啸而过。公子城躲过华豹射来的一箭,正要拉满弓弦,华豹又要射出第二箭,公子城大喊:“不让我还手射箭,你这个卑鄙无耻的小人!”华豹停了下来让公子城射箭,公子城一箭射死了华豹。华豹车右张丐从车上抽出长柄殳(shū)下车要去砍公子城,被公子城一箭射在张丐大腿上,张丐爬行到公子城车前,用殳猛击公子城的车驾,砍断了公子城的车轸,公子城眼疾手快,又是一箭,将张丐射死在车前。
华豹战车上,只剩下了御者于犨,他对公子城大喊:“你射死我吧!”公子城说:“你投降吧,我会替你向国君说情。”于犨说道:“不能和战友一同战死沙场,是军士最大的罪过。我犯大罪而投降于你,国君怎会用我?你快点射箭吧!”公子城一看这位驾车之人还挺执着,于是一箭射死了于犨。
诸侯联军打败华氏,将华氏残余包围在了都城的南里一带。华亥捶胸顿足,见到儿子华貙,叹息道:“我们华氏将要落得和晋国栾氏一样的下场了!(晋国栾氏因反叛被灭族)”华貙答道:“您不要吓唬我!今天的事,走霉运才会死呢。”他们经过商量,决定派华登再去楚国搬救兵。华貙率领战车十五乘、兵士七十人,突围而出,在睢水岸边为弟弟华登饯行,哭着送别了华登,然后又返回了南里守护父亲。
楚国得知华登入楚求援的消息后,派出司马薳越去边境迎接他。太宰犯阻拦道:“诸侯之中,只有宋国的臣子还事奉国君,现在他们君臣争夺,我们楚国放着国君不帮,反而要帮助臣子反叛,这样不妥吧?”楚平王是不想帮助宋国国君的,因为宋国顺服于晋国,只有帮助叛军,还有可能在宋国建立一个抗晋附楚的政权,于是他对太宰犯说道:“爱卿说晚了,寡人已经答应他们了。”
楚国司马薳越率领楚军接到华登,已是年后(鲁昭公二十二年,公元前520年)了,大军向宋国边境进发。薳越派出使者先行到达宋国都城,对宋元公说:“敝国国君听闻贵国有不善之臣为贵君带来了忧患,为不使贵国宗庙蒙羞,寡君请求接收他们并加以诛戮。”意思是说,楚军要将反叛的华氏、向宁接回楚国。
宋元公因国内出现叛乱,自我贬损称自己为“孤”,他对楚国使者说:“孤不才,不能取得父兄一辈(指华氏、向宁)的欢心,使得楚君为此忧虑,谨此拜谢贵君发布命令。然而君臣之间征战,如果贵君一定要帮助叛乱的臣下,孤也只得惟命是听。人们常说:‘不要经过动乱人家的门口’,贵君如若赐恩保护敝邑,不去庇护不忠而奖励作乱之人,则是孤的愿望。”宋元公的意思是说,你们楚国管得也太宽了,臣子作乱,你大老远要来庇护他们,不太合适吧?
诸侯联军将帅晋卿荀吴、齐大夫苑何忌、乌枝鸣、翰胡(曹)、公子朝(卫)等人商议后,觉得如果华氏看不到出路而拼死一战,楚国面上无光,必将出兵参战,对联军不利。不如驱逐华氏和向宁,这样楚国也有面子,华氏和向宁到了楚国也翻不出什么大浪了,联军救了宋国并且除去了一大祸害,也算大功告成。众将帅将此想法禀告了宋元公,宋元公也就同意了,人家诸侯联军是来帮忙的,不能总让人家一直替你打下去吧。二月二十一日,华亥、向宁、华定、华貙、华登等人跟随楚军返回了楚国。宋元公任命公孙忌为大司马,边卬为大司徒,乐祁(乐喜之孙)为司城,仲几为左师,乐大心为右师,乐挽(乐喜之孙)为大司寇,重新平衡了各大家族在朝中的权力,宋国内乱总算平息了下来。
宋国内乱之前,齐国领导的齐、莒、邾、徐四国联盟也瓦解了。鲁昭公十九年(公元前523年)初,齐景公要去南部边境巡视,然后封禅泰山,派人告知莒国组织役夫修缮道路;莒共公虽然是齐景公扶立为国君的,但他这两年不堪忍受齐国的盘剥,一直没有给齐国缴纳贡赋,还暗地里多次与楚国互派使者往来,因此到了秋天都没有组织民力抢修道路。齐景公大怒,派出齐卿高发领兵讨伐莒国。高发乃齐国世卿高氏之后,西周时期周天子封姜姓国氏、高氏为齐国上卿,辅佐齐侯姜姓吕氏,因此国氏、高氏又被称为“齐国二守”。
莒国根本禁不住齐国大军铁蹄的碾压,莒共公从都城逃到了纪鄣城,高发派出齐大夫孙书带领一支兵马追击到了纪鄣城外。孙书出自陈氏,是陈桓子(陈无宇,也称田桓子)的儿子,他的亲孙子就是鼎鼎大名的军事家孙武。纪鄣城里有一老妇人,她的丈夫被莒共公给杀了,老妇人住在纪鄣城,平时在家中纺织成线,然后再搓成绳子,长度按照纪鄣城墙的高度做好后藏在家中。她听说齐军来到纪鄣城,要抓逃入城中的莒共公,妇人将家藏的绳子扔到了城外,齐**士捡到后献给了将军孙书,孙书命将士在夜间攀着绳子登城,有六十名甲士登上了城墙,然后绳子就断了,齐军在城外击鼓呐喊,已经爬上城墙的军士们也大声呐喊,杀声不断,防守城墙的莒**士们不知有多少齐军攻进来,也都四散奔逃。莒共公听到齐军攻入纪鄣城的消息后,趁着黑夜,从西门逃了出去。七月十四日,齐军占领了纪鄣城。
这一仗,孙书因为战功被齐景公封采邑乐安,赐姓孙氏,孙书的儿子名叫孙凭,著有《孙子兵法》的孙武是孙书的嫡孙。