楚国在城濮之战败给晋国以后不久,颇有作为的楚成王就被他的儿子商臣害死了。商臣当了国君,就是楚穆王。楚穆王不甘心失败,加紧操练兵马,发誓要和晋国决一雌雄。他首先把附近的几个小国兼并了,又把中原的陈、郑等国拉了过去,周顷王6年(公元前613年),楚穆王正在雄心勃勃、发愤大干的时候,突然得暴病死了,他的儿子旅即位,就是赫赫有名的楚庄王。
晋国见楚国忙于办丧事,又重新会合诸侯,订立盟约,随后,把楚国拉过去的陈、郑等国,又拉回到自己的势力范围之内。这一来,楚国的大臣们都心急如焚,要和晋国决战。可是,楚庄王却无动于衷。即位3年以来,他整天喝酒、打猎,不问政事,还在宫门口挂上块大牌子,上面写着:劝谏者,死无赦!谁愿意拿自己的性命开玩笑呢?大臣们不敢上谏,只能看着楚庄王整日无所事事。
一天,大夫申无畏来见楚王,让楚王猜个谜语。申无畏说:“楚国京城,有只大鸟,五彩缤纷,整整3年,不飞不叫,满朝文武,莫名其妙。请您猜猜看,这究竟是只什么鸟?”楚庄王一听,笑着说:“我猜到了。这可不是只普通的鸟。这只鸟啊,3年不飞,一飞冲天;3年不鸣,一鸣惊人。你等着看吧。”申无畏明白了楚庄王的意思,他高兴地退了出去。
又过了几个月,楚庄王这只大鸟依然如故,既不“飞”,也不“鸣”,照旧喝酒、打猎、欣赏歌舞。大夫苏从忍耐不住了,便去见庄王。他一进宫门,就大哭起来。楚庄王说:“先生,什么事这么伤心啊?”苏从回答说:“我为自己就要死去伤心,也为楚国即将灭亡伤心。我想劝谏您,你不听,一定要杀死我。您整天打猎游玩,不理朝政,楚国的灭亡不就在眼前了吗?”楚庄王突然站起来,激动地说:“大夫的话全是忠言,我一定照你说的办。”随后,他便下令解散了乐队,遣散了舞女,决心要干一番事业。
楚庄王先是整顿内政,起用有作为的人,把申无畏、苏从提拔到关键的职位上去。当时楚国的令尹斗越椒野心勃勃,想要篡权。楚庄王便任命了3个大臣协助令尹工作,削弱了令尹的权力,防止斗越椒叛乱。
楚庄王一面改革政治,一面扩充军队,加强训练,准备和晋国决战,报城濮之战的仇。他即位的第6年,出兵灭了庸国(今湖北省竹山县一带);第6年,打败了宋国;第八年,又打败了陆军(今河南省嵩县北部)的戎族。楚庄王还在周朝的边界上阅兵示威,吓得周定王赶忙派大臣王孙满去慰劳。楚庄王见了王孙满,头一句话问周朝京城宗庙里的九鼎有多重。这九鼎是天子权力的象征,问九鼎的重量,实际上就是对周天王地位的威胁。
周定王2年(公元前605年),楚庄王讨伐了陆军的戎族,在回来的路上,突然发现叛贼斗越椒发兵拦截,想把楚庄王消灭在郢城之外。楚庄王见斗越椒人多势众,自己带的兵刚刚打完仗回来,疲惫不堪,知道硬拼对自己不利,便说:“斗氏一家对楚国有大功,宁肯让越椒负我,我不能负越椒。”便派苏从前去讲和,斗越椒没有答应。到了晚上,楚庄王假装退兵,却把军队埋伏在漳水东岸,又派一队士兵在本岸活动,引诱斗越椒过河。自己则带着少数士兵,躲在河桥的下面。第2天早上,斗越椒看到河对岸有楚兵,果然追过河去,等发现中了计,想往回撤退,桥已经被拆毁了。斗越椒惊慌失措,急忙命令士兵涉水过河。士兵们正要下水,只听对岸一员楚将大声喊:“大将乐伯在此,斗越椒快快投降!”说完,命令士兵奋力射箭。斗越椒也急令士兵向对岸射箭。在双方对射之中,乐伯手下的神箭手养由基一箭射死了斗越椒。斗家将土见主将身亡,便四下逃散,楚军分头追剿,取得了全胜。
楚庄王平定了内乱,又经过多年的准备,决定挥兵北上,同晋国争霸。
固定王9年(公元前598年),楚庄王趁陈国内乱的机会,派兵降服了陈国。第2年,楚庄王亲自率领大军去攻打郑国。陈、郑都是晋国的保护国,楚国出兵陈、郑就是向晋国挑战。
晋国当然不甘示弱。这一年的夏天,晋景公派苟林父为大将,先轸的孙子先彀为副将,率领600辆兵车,去援救郑国。大队人马到了黄河边上,探子报告,郑国已经投降,楚国正在往回撤兵。苟林父本来就不愿意打仗,听到这个消息,立刻决定退兵。先彀坚决不同意,带着自己的一队兵车,渡过黄河追击楚军去了。赵同、赵括也认为自己父兄劳苦功高,也不听苟林父的将令,带上队伍跟着先彀过河去了。荀林父没有办法,只好下令全军过河。
楚庄王听说晋军已经渡过黄河,便召集部将们商量对策。令尹孙叔敖主张同晋军讲和,然后退兵;一批年轻的将士都主张开战。楚庄王一时拿不定主意,有一个叫伍参的小臣说:“晋军主将荀林父刚掌大权,没有威信,副将先彀倚仗先人的功劳,瞧不起苟林父,三军的将领想要主动出击,又没有权力;士兵们不知道听谁的,晋军上下不同心,恐怕有伤我们楚国的尊严吧?”楚庄王听伍参分析得人情人理,便下令楚军摆开阵势,将战车一律朝向北方,准备出击。
孙叔敖见晋军有600辆兵车,实力雄厚,总是放心不下,他对楚庄王说:“我看不如先派人去讲和,他们如果不同意和,非要打,我们再迎战也不迟。那时候,理就在我们这边了。”楚庄王接受了这个建议,派蔡鸠居出使晋军。苟林父派人接待蔡鸠居,表示同意讲和,并且提出双方同时退兵。蔡鸠居完成了使命,准备返回楚营。谁知先彀早就在营帐外面等着,他见蔡鸠居出来,一把拦住道:“你回去告诉你们国君,我们这次来,不把你们杀个落花流水,决不收兵!”蔡鸠居十分气愤,没有搭理先彀,继续往外走,刚到军营口,又碰上了赵同、赵括。这两个人拿弓点着蔡鸠居的头大骂不止。
蔡鸠居跑回楚营,把他受侮辱的情况向楚庄王讲了一遍。庄王大怒,问:“谁敢打头阵,给晋军点厉害瞧瞧?”大将乐伯挺身而出,跨上战车,直奔晋军大营,战车没跑多远,乐伯就碰上了十几个巡逻的晋兵。乐伯也不说话,一箭一个,一连射倒3个晋兵,又下车活捉一人,然后跳上车,往回便走。晋军看到楚将杀人,分3路追来。乐伯毫不畏惧,他放声大喊:“晋将小心,我左边射马,右边射人,看见!”说完左一箭,右一箭地射起来。果然箭无虚发,左边射倒3、4匹马,右边射伤3、4个人,吓得晋军谁也不敢再追。
苟林父见楚军来挑战,急忙又派魏椅去讲和。魏犄就是跟随晋文公重耳逃难的魏仇的儿子。魏犄想当大夫,没有当上,一直不满,恨不得晋军失败。苟林父派他去讲和,他却下了战书。回来后对苟林父说:“楚王不同意讲和,一定要决一胜负。”
晋将赵旃认为自己的本事高强,总想露一手给主将看看。到晚上,他乘着天黑带领部下去偷袭楚营,不小心被楚兵发觉。楚庄王驾车就追。楚军将领见庄王亲自出击,纷纷跟了上去。孙叔敖对庄王说:“晋军欺人太甚,既然众将都出来了,咱们不如乘其不备,杀过去!”这时候,天还不亮,楚庄王下令出击。霎时间,鼓声如雷,车马飞驰,楚军将士争先向晋国军营冲去。晋军将士睡得正酣,一点没有准备。苟林父听到鼓声,急忙下令抵抗。两国军队在的城(郑地,今河南省郑州东)郊外大战起来。晋兵士气不振,指挥不灵,抵抗不力。而楚军一鼓作气,往来冲杀,没多大功夫,就把晋军打得溃不成军了。
楚庄王率领楚军开进的城。有人请他乘胜追击。楚庄王说:“楚国自从城濮之战败给晋军,就不敢和晋国争锋,这次胜利,可以洗掉耻辱啦。晋国楚国都是大国,早晚总得讲和,何必多杀人呢?”于是,下令楚军立即收兵,放晋国官兵渡河回去。
城濮一战,拥有600辆兵车的晋国大军,一夜之间,几乎全军覆灭。3年不鸣的楚庄王终于一鸣惊人,他继齐桓公、晋文公、秦穆公之后,也当上了诸侯霸主。