许灵公由于在阳桥之役作为楚共王的车右助楚伐鲁,逼迫鲁国签订城下之盟,回到许国后得意洋洋,自诩为楚王亲信,便不把同样归顺楚国的郑国放在眼里,他不去郑国朝觐,也不听从郑国的命令,郑悼公派出郑卿公子去疾在鲁成公三年(公元前588年)夏天率军讨伐许国,攻占了大片许国土地,那时鲁成公正在晋国访问。鲁成公四年(公元前587年)十一月,天气已入冬,中原大地寒风彻骨。郑卿公孙申率兵前往被郑国占领的许国土地划定疆界,由于是划定所得土地疆界,因此所带兵士不多,结果被许国的军队在许地展陂打败。郑悼公知晓后大怒,亲自率领郑国军队进攻许国,进一步攻占了许国锄任、泠敦两邑的土地。
晋国正卿栾书拜见国君景公,请求出兵救援许国,景公问道:“许君曾身为楚王车右助楚伐鲁,晋国灭之不及,为何要救许?”栾书回答道:“禀告国君,郑、许两国皆归附楚国,现在两国相争,许国必败,如晋国能够救许国于水火,则是收服许国的机会。楚国此时对于郑、许之争,处于两难:救许则郑叛,助郑则许叛。”晋景公对栾书此计甚为赞许,于是命正卿栾书统帅中军,由荀首作为中军副帅;再命上军副帅士燮(范文子)率领本部兵马协同,出兵救许伐郑,攻占了郑国的汜、祭两座城池,晋国军队向郑国都城新郑进发。
楚国得知晋国出兵伐郑救许后,已无从选择,只得出兵驰援郑国。楚国司马子反将军奉楚共王之命率领楚军精锐到达郑国都城郊外扎营。郑悼公和许灵公都来到楚军大营,在将军子反的大帐里吵了起来,郑卿皇戌代表郑悼公发言,历数许国罪状;许灵公也一直在为许国辩解。子反是一介武夫,讲道理不是他的强项,双方言辞你来我往,子反听烦了,他对郑、许两方说:“晋军已攻占了郑国的两座城池,二位国君却还在这里互相指责!你们干脆去楚国郢城到敝国国君面前论个曲直吧!侧乃武将,奉楚王之命,前来郑国抗击晋国的侵袭,给不了你们要的是非公断。”
楚军到达郑国都城之外后,郑国和许国也不打了,晋国已经占领了两座城池,也开始回撤。第二年(公元前586年,鲁成公五年)六月,郑悼公前往楚国郢都,与许灵公在楚共王面前争讼,结果楚王裁决,许国获胜;楚国命郑国归还其所占领的许国土地,还扣押了郑卿皇戌和司马公子发(字子国),郑悼公这才得以返回郑国,他立刻派郑卿公子偃前往晋国请求盟好,决意投靠晋国。晋景公当然不会放过这样难得的机会,在八月派出晋卿赵同与郑悼公在晋国的垂棘城会盟结好。
晋国接纳了郑国重新回到中原诸侯联盟,晋景公决定召集诸侯于当年的十二月在郑国的虫牢举行会盟。十二月二十三日,鲁成公、齐顷公、宋共公、卫定公、郑悼公、曹宣公、邾定公、杞桓公都前去参加了虫牢之盟,也算是在邲之战后,晋国恢复了中原霸主的地位。盟会上,晋侯与诸侯国君商量再次举行盟会的日期、举办国和地点,以重申虫牢之盟,各诸侯都无异议,但是晋国的重要盟友宋国国君宋共公却出人意料地没有附和晋景公再次会盟的提议,他特地派宋国司寇向为人前去拜见晋景公,和颜悦色地表示宋国刚刚发生了“子灵之难”,国君需要坐镇宋国都城,稳定国内局势,将不能亲自参加下次的会盟,但宋国保证一定派正卿作为国君的代表参加。
对于宋国的“子灵之难”,鲁成公已有耳闻。在郑悼公与晋卿赵同的垂棘之盟以前,成公五年的春天,鲁卿孟献子访问了宋国,作为对宋卿华元访问鲁国的回访。华元在接待孟献子时就曾告知他,代替他赴楚为质的国君之弟子灵(公子围龟)将返回宋国,宋国将再无顾忌,与鲁国一起共尊晋国为霸主。后来在鲁成公出发参加虫牢会盟之前,孟献子向鲁成公禀报:“公子围龟返回宋国后,被宋共公杀了。”成公惊讶地问:“何故?”孟献子回答:“公子围龟回到宋国都城商丘后,因为自己代替华元去楚国为质,对华元有怨气。宋卿华元在府中设宴为他接风。宴会结束后,他要华元命府中军士擂鼓呼叫,他大呼小叫地跑出了华元的府门;然后他又要华元命人擂鼓呼叫,他在呼叫声中又冲入了华府。还说‘这是练习一下怎么攻打华氏。’弄得华元大惊失色,以为大祸将要临头,赶快入宫报告了国君,请求国君的宽恕。华元乃宋国重臣,宋公即位后就让自己的弟弟公子围龟前往楚国换回了在楚国为质的华元,以辅佐朝政。公子围龟在华府的这番行为,等于是在挑拨国君与华元之间的关系。宋公一怒之下,命人杀了公子围龟。”
鲁成公回到曲阜,就去了穆姜夫人的宫中,探望母亲,给穆姜夫人讲了虫牢之盟的见闻,还讲了宋国的“子灵之乱”,他对母亲说:“这位宋公不知为何,不愿再参加晋国召集的会盟了,以‘子灵之难’作借口,晋侯能相信吗?宋君能杀子灵,哪里还有什么祸乱?”穆姜夫人听后说:“宋君如此对待霸主,不是自找苦吃吗?看来晋国要讨伐宋国了,我儿当有所准备。”鲁成公点头称是,接着说:“周天子定王十一月十二日驾崩了,鲁国也要派出使臣为周天子送去葬礼所需财币、赗赙用品,也都需要准备,季相应该已有安排,儿子召季相入宫问问,也提前为晋国伐宋谋划一番。”穆姜夫人递给成公一碗牛尾汤,对成公说:“季相偏爱牛尾汤,我儿喝了这碗汤再去书房,也给季相带些牛尾汤过去。季相年纪大了,我儿议事也可以多找找叔孙氏、孟孙氏、公孙婴齐他们,还有臧孙纥,他年龄与我儿相仿,刚接替其父宣叔担任鲁卿和司寇,需要多历练,我儿也需要有自己的得力能臣。依哀家看,叔孙侨如和臧孙纥这两个人,我儿以后可多予信赖。”成公一边喝着牛尾汤,一边应承着母亲的话,他心中想着晋国伐宋的事,就命人传季相到书房议事,辞别了穆姜夫人回到了书房。
此时已是鲁成公六年(公元前585年)正月,季文子应召来到成公燕寝的书房,行礼完毕,成公将牛尾汤端给季文子说:“寡人赴虫牢盟会,国事全赖季相操劳,听闻季相喜爱牛尾汤,此汤乃母后所赐,季相先趁热喝了吧。”季文子听后非常感动,自己的这点喜好,怎么国君都知道了?他喝下汤后,向成公再拜说道:“国君爱惜老臣,臣唯有以死相报鲁国社稷。老臣奏请,于曲阜城内建立武宫一座,以彰鲁国鞍之战胜利荣耀,向鲁国后人昭示国君的文治武功。”成公心中纳闷:“一碗牛尾汤就让季相修建一座武宫?鞍之战,乃晋国救援鲁卫两国,统一指挥,此战获胜乃晋国之功也,鲁军虽参战,但并非鲁军独自战胜齐国,岂能归功于己?”不过成公也未加阻拦,他对季文子说:“季相择地营建吧。寡人召季相前来,是在虫牢盟会上,看到宋公婉辞了晋侯的再次盟会提议,寡人认为晋国将复会伐宋,季相以为如何?”
季文子已知此事,他回答道:“宋公此举,实属无益。晋国必伐宋,鲁国既已参加了虫牢之盟,当跟随晋国,别无选择。”
成公说:“季相预作备战吧。周天子会葬之事是否已办妥?”
成公已经二十岁出头了,国事过问得开始多了起来,季文子当政,像建立武宫、为周天子会葬这些事情,季文子早都已经安排好了,他听到国君询问,便躬身回复到:“禀告国君,都已安排妥当。臣另有一事奏请;先君在世时,曾为阻遏莒国南下侵袭郯国,攻占了向城和根牟,在郯国的东北还有一个附庸小国鄟国,靠近沭水,土地肥沃,在此大国无暇顾及之际,鲁国可取之,使之与向、根牟同为鲁邑,形成犄角之势,既扩展了鲁国的土地,又可更加有效阻遏莒国的南下之路。”这番话也是说到成公心坎上了,成公当即允准。
一个月后,曲阜城内的武宫建成了;两个月之后,鄟国被鲁军所灭,成为了鲁国的鄟城,也称作鄟陵。