楚成王在城濮之战败后不久,便被他的儿子商臣害死了。商臣就是楚穆王。他不甘心失败,加紧操练兵马,发誓要和晋国决一雌雄。可天不遂人愿,正当他雄心勃勃,准备大干一场的时候,突然得暴病死了。他的儿子旅即位,就是赫赫有名的楚庄王。
晋国便趁着楚国国丧之机,积极拉拢其他诸侯国,发展壮大自己的势力。大臣们心急如焚,可楚庄王却不以为意。且即位三年来,只知沉迷于吃喝玩乐,而不理政事。
有一天,大夫伍举来见楚庄王。楚庄王手里端着酒杯,嘴里嚼着鹿肉,醉醺醺地在欣赏歌舞。他眯缝着眼睛问道:“大夫此来,是要喝酒呢,还是想看歌舞?”伍举心情沉重地说:“有个谜语,我怎么也猜不着,特来向您请教。”楚庄王一边喝酒,一边说:“什么谜语,这样难猜?你说说看。”伍举说:“楚国京城,有只大鸟,五彩缤纷,美好多娇;整整三年,不飞不叫,满朝文武,莫名其妙。请您猜猜看,这究竟是只什么鸟?”楚庄王一听,心里明白伍举的意思,笑着说:“我猜到了。这可不是只普通的鸟。这只鸟啊,三年不飞,一飞冲天;三年不鸣,一鸣惊人。你等着看吧。”伍举也明白了楚庄王的意思,他高兴地退了出去。后来又经大夫苏从冒死劝谏,楚庄王终于决定要干一番事业。
他首先整顿内政,起用有作为的人,把伍举、苏从提拔到关键的职位上去。并将权力过大的人进行权力分化,以防其专政谋反。
另一面扩充军队,加强训练,准备和晋国决战,报城濮之战的仇。他即位的第六年,出兵灭了庸国(今湖北省竹山县一带);打败了宋国;第八年,又打败了陆浑(今河南嵩县北部)的戎族。楚庄王还在周朝的边界上阅兵示威,吓得周定王赶忙派大臣王孙满去慰劳。楚庄王见了王孙满,头一句话就问周朝京城宗庙里的九鼎有多重。这九鼎是天子权力的象征,问九鼎的重量,实际上就是对周天王地位的威胁。经过这一番耀武扬威,楚国的势力和声威大大振作起来。
然而,在楚国国力日益强盛之时,国内的不稳定因素也同样存在。即周定王二年(公元前605年),大臣斗越椒趁庄王讨伐陆浑的时候谋反,后来在漳水这一地方进行了一场大战,最终斗越椒被箭射死,楚军大胜。后又经多年的发展,楚庄王认为已经准备充分,决定挥兵北上,同晋国争霸。
周定王九年(公元前598年),楚庄王趁陈国内乱的机会,派兵降服了陈国。第二年,楚庄王亲自率领大军去攻打郑国。陈、郑都是晋国的保护国,楚国出兵陈、郑,就是向晋国挑战,不承认晋国的霸主地位。
晋国当然不甘示弱。这一年的夏天,晋景公派荀林父为大将,先轸的孙子先为副将,率领六百辆兵车,去援救郑国。大队人马到了黄河边上,探子报告,郑国已经投降,楚国正在往回撤兵。荀林父一听到这消息,便决定退兵,而先却意气用事,仗着自己是将门之子和刚愎自用的赵同、赵括兄弟领兵过河,直朝楚军攻去。
楚庄王听说晋军已经渡过黄河,便召集部将们商量对策。令尹孙叔敖主张同晋军讲和,然后退兵;一批年轻的将士都主张战斗。楚庄王一时拿不定主意。有一个叫伍参的小臣向楚庄王分析了晋军内部各派系的分歧,指出其上下不同心的缺点,认为此战必定能获胜。楚庄王听伍参分析得入情入理,便下令楚军摆开阵势,将战车一律朝向北方,准备出击。
孙叔敖见晋军有六百辆兵车,实力雄厚,便建议庄王先派人和晋国讲和,如果此计不通再打也不迟。楚庄王接受了这个建议,派蔡鸠居出使晋军。荀林父表示同意讲和,并且提出双方同时退兵。蔡鸠居完成了使命,准备返回楚营。谁知出来时,在营帐外碰到先和赵氏兄弟俩,他们表示决不讲和,并对蔡鸠居极力挖苦、侮辱,并含沙射影对楚庄王及楚国进行讽刺。
蔡鸠居跑回楚营,把他受侮辱的情况向楚庄王讲了一遍。庄王大怒,问:“谁敢打头阵,给晋军点厉害瞧瞧?”大将乐伯挺身而出,跨上战车,直奔晋军大营,见到晋兵,也不说话,举箭便射,一连三人中箭而倒。晋军见楚将杀人,分三路追击。乐伯左、右开弓,连射几匹战马和几个士兵且箭无虚发,吓得晋军谁也不敢再追,眼睁睁地看着乐伯跑回楚军大营。
荀林父见楚军来挑战,急忙又派魏去讲和。荀林父怎么也没有想到,这个魏是个小人,竟因晋景公没有封他做大夫,一直心存怨恨,故意将求和之事反向处理,向楚军下了战书。回来后对荀林父说:“楚王不同意讲和,一定要决一胜负。”
更意料不到的事情发生了。晋将赵旃自恃本事不凡,总想立名,便在晚上趁黑带兵去偷袭楚军,不小心却被发现了,楚庄王亲自率兵追击,弄清情况之后,楚军决定趁机直攻晋军大营。霎时间,鼓声如雷,车马飞驰,楚军将士争先向晋国军营冲去。晋军将士睡得正酣,一点没有准备。荀林父听到鼓声,急忙下令抵抗。两国军队在城(今河南郑州东)郊外大战起来。晋兵刚从梦中惊醒,一时之间,仓促应战,士气不振,抵抗不力。而楚军一鼓作气,往来冲杀,没多大功夫,就把晋军打得溃不成军了。
荀林父带着残兵败将,仓惶逃走。逃至河边,船少人多,你争我夺,自相残杀。船上的人满了,后来的人攀住不放,把船弄翻了不少。先站在船上,喊道:“谁再攀住船不放,用刀砍他的手。”于是那些船上的士兵举起刀来,砍那些攀船的人,手起刀落,鲜血淋漓,河水都染红了,真是惨不忍睹。
楚庄王率领楚军开进城。有人请他乘胜追击。楚庄王说:“楚国自从城濮之战败给晋军,就不敢和晋国争锋,这次胜利,足以洗刷掉以前的耻辱了!晋、楚皆为大国,早晚总得讲和,何必赶尽杀绝呢?”于是,下令楚军立即收兵,放晋国官兵渡河回去。
城一战,拥有六百辆兵车的晋国大军,一夜之间,几乎全军覆灭。三年不鸣的楚庄王终于一鸣惊人,他继齐桓公、晋文公、秦穆公之后,也当了霸主。