鲁宣公十年正月,宣公又去齐国朝觐,齐惠公归还了济西之田。宣公回到曲阜没多久,四月十四日,宣公得到消息,他的恩公齐侯薨逝了,他的儿子姜无野继位,史称齐顷公,齐惠公的亲信宠臣崔杼(zhù)逃奔了卫国。对于宣公而言,齐侯是他的贵人,可以说,没有齐惠公,就没有他的国君之位。十年以来,齐侯一直是他的靠山,且多有提携助力,还归还了济西之田。宣公既震惊,又悲伤不已,就像自己的父君薨逝了一样。虽然刚从临淄回到鲁国不久,他还是决定再赴临淄,亲自参加齐侯的葬礼。季文子劝他说:“先王之制,诸侯之丧,士吊,大夫送葬。晋文、襄之霸,也只有大夫吊唁、卿共葬事,国君不应亲自会葬。”鲁宣公哪里听得进去?齐侯对于他来说,不只是诸侯国君,而是有一种亲情的纽带连接着宣公和齐惠公。鲁宣公毅然地亲自前往临淄,吊唁齐惠公,为恩公奔丧,五月回到曲阜后,宣公又派出东门襄仲之子上卿公孙归父也赶到临淄,参加了齐侯的葬礼。鲁齐两国的亲密关系此时已经达到了顶峰。
从此以后,宣公开始重用公孙归父,以制衡三桓的季文子、孟献子和叔孙宣伯。
季文子此时已是鲁国执政上卿,他看到国君派上卿公孙归父去参加了齐侯的葬礼,自己也在葬礼之后访问了齐国,向齐顷公表达了鲁国与齐国再续盟好的愿望,并送上丰厚的礼物。公孙归父在夏天从齐国参加完齐惠公的葬礼回到鲁国后,就率领鲁军讨伐邾国,并攻占了绎城(与邾国国都同名);冬天战事结束后,又跑去齐国,向齐侯解释讨伐邾国,是为了强化对莒国的防范。公孙归父的这一伐邾之举,齐顷公并不满意,他马上派出齐卿国武子访问曲阜,一方面是对季文子访齐的回访,另一方面就是想通过季文子了解一下鲁国伐邾的真实意图。季文子说:“子家(公孙归父字子家)伐邾,乃国君之意也,确为屏障莒国。伐邾之后,赴齐国说明,也是国君之意。子家伐邾,实为对鲁齐两国都有利。”国武子回国后,据实禀明了齐顷公,齐侯还是心有不快:“既是对齐鲁都有利之举,鲁侯为何不在来齐吊唁先君之时告知寡人?鲁侯重用公孙归父,意乃抗衡季氏乎?”
宣公十年秋天,周定王派公卿刘康公来鲁国访问,作为对前一年鲁国孟献子朝觐周天子的回访,刘康公遵照周定王的旨意,向鲁国国君和众大夫都分送了礼物。他发现,鲁国的季文子、孟献子都很俭朴,而叔孙宣伯、公孙归父却很奢侈。刘康公回到京师后,周定王问他鲁国的大夫哪位贤德,他回答说:“季孙氏、孟孙氏可以在鲁国长期保持地位,叔孙氏、东门氏可能会灭亡,即使家族不亡,叔孙宣伯、东门子家(公孙归父)本人必不能免于灾祸。”刘康公认为,这两个人作风奢靡,不会体恤贫困,必会危及自身,况且作为人臣而奢侈,国家会不堪负担,东门子家不可能事奉两代国君,而叔孙宣伯不可能事奉三代国君。
郑国数年来始终摇摆于晋国和楚国之间,公元前600年楚王伐郑,郑国打败了楚国军队;但郑国惧怕楚国报复,又在第二年(公元前599年)与楚国讲和,而晋国则又率诸侯讨伐郑国,郑国又与诸侯联军讲和。宣公十一年(公元前598年)郑国又与楚国有辰陵之盟,再次归顺楚国,然而又请求归附晋国。楚庄王认为郑国没有做到坚定地站在楚国一边,还不如干脆吞并了它。
鲁宣公十二年(公元前597年)春天,楚庄王再次统帅楚国兵马进军郑国,意图彻底解决郑国的墙头草随风摇摆的问题。楚国大军包围了郑国都城新郑。在被围十七天后,郑国人占卜弃国迁徙为吉,郑人痛哭。楚庄王于是下令楚军后撤,以等待郑国君臣出城投降。郑襄公得报楚军后撤,于是又下令加固城墙,修城固守;并派出使者赶赴晋国求援。楚庄王大怒,下令楚军再次围城进攻。三月份,楚军攻破了郑国都城,从新郑的南门攻入,沿主路直逼王宫。
郑襄公脱去上衣露体,牵着羊在半路迎接楚庄王,肉袒牵羊为古礼,表示愿意臣服为奴。郑伯对楚王说:“孤不能承奉天意,不能事奉君王,使君王带着怒气到达敝邑,这是孤的罪过。岂敢不惟命是听?要把孤俘虏到江南,放逐到海边,全凭君王吩咐。要灭亡郑国分割郑地赐予诸侯,让郑国人作为臣隶,也听凭君王处置。如果承蒙君王顾念从前的友好,向周厉王、宣王、郑桓公、武公求福,而不灭绝敝邑,让敝邑改为事奉君王,等同于楚国的诸县,则是君王的恩惠,也是孤的心愿,孤已不敢指望了,肺腑之言,请君王考虑!”楚庄王左右谋臣将士说:“国君不要允准他的请求,攻克一国没有赦免之说。”楚庄王说:“郑国的国君能够甘居人下,必然能够取信和治理他的百姓,郑国的国运怎会就此完结呢?”于是楚庄王下令楚军退兵三十里,与郑国讲和。楚庄王派大夫潘尪进入新郑签订和约结盟,郑国送出公子去疾到楚国为质。
六月份,晋景公派出晋军救援郑国。荀林父为中军统帅,先縠为副,赵括、赵婴齐为中军大夫;士会统帅上军,郤克为副,巩朔、韩穿为上军大夫;赵朔统帅下军,栾书为副,荀首、赵同为下军大夫,韩厥为司马。晋国这是出动了三军,战车逾千乘,兵力近四万人,大有与楚军决战的架势。
晋军到达了黄河时,得知郑国已经投降了楚国,中军统帅荀林父就想撤军返回晋国,他对众将说:“郑国已归服楚国,晋军没有到达郑国而劳动百姓,出兵有什么用?等楚军撤回国后,我等再攻打郑国也不晚。”上军统帅士会同意撤军,他认为,楚庄王德行已立,楚国刑罚施行、政事成就、事务合时、典则执行、礼节顺当,楚军难以抵挡,还是撤吧,还有弱小而昏聩的国家,为什么一定要与楚军对战呢?晋将仲虺也赞同士会的意见,支持荀林父回撤的想法。
中军副帅先縠不同意回撤,他说:“不可。晋国之所以称为霸主,是因为军队勇敢、臣子尽力。如果回撤,将会由于不敢与楚对战而失去诸侯的拥戴和信任,那还不如死呢!况且晋国大军已经出动,听到敌人强大而退却,不是大丈夫所为!国君委我等以重任,我等却以不丈夫回报国君,你们做得到,我可做不到!”说完,先縠率领自己所部渡过了黄河。
司马韩厥对荀林父说:“中军副帅先縠率部渡河,如果他率领的军队失陷于楚军,您作为中军统帅的罪责可就大了。不如现在干脆继续前进,作战如果不能取胜,还可以各军正副统帅六人分担责任,相比于您一个人承担责任而回撤,还是渡河进军为好。”荀林父采纳了韩厥的建议,命晋军全部渡过黄河,继续向郑国方向行进,驻扎在敖山、鄗山之间的地带。
楚军方面由楚庄王亲自统帅,令尹孙叔敖辅佐,中军统帅沈尹,左军统帅子重,右军统帅子反,大军驻扎于郔城。楚庄王听到晋国三军前来救援郑国,想撤军避其锋芒,但他的亲信大夫伍参主战,令尹孙叔敖主和。孙叔敖说:“楚军往年进入陈国,今岁进入郑国,不是没打过大仗,只是如果打起来不能取胜,伍参的肉够吃的吗?”伍参说:“如果此战楚军得胜,令尹大人就是没有谋略;如果此战不能获胜,伍参的肉将会在晋军哪里,哪能吃的上呢?”令尹不听,下令战车掉头向南,旌旗倒转,准备回师楚国。
伍参派去拜见楚庄王说:“晋国参政的是新人,还不能熟练地行使指令。晋中军副帅先縠刚愎不仁,不肯听从命令。他们的三军统帅,想要专权行事但有做不到。众军士想要听从命令但上级心思不齐,那大军听谁的命令?这一战,晋军必败。而且国君您如果逃避臣下,楚国社稷怎么办?”楚庄王被伍参这么一说,心里不舒服,诏命令尹将战车改而继续向北行进,在管城驻扎待命。
郑襄公听到晋国出兵前来救援,派出郑卿皇戌前往晋军大营,他要策动晋楚两国决战,以避免郑国夹在两强之间的困境。皇戌对晋军众帅说:“郑国归附楚国,乃是为存社稷不得已而为之,郑国对晋国其实并无二心。楚军屡次胜利而骄傲,他们的军队远征,已经疲惫不堪,而且不设防备。晋军攻击他们,郑国军队可作后援,楚军必败。”中军副帅先縠也说:“打败楚国、收服郑国,在此一举!”