楚國在城濮之戰敗給晉國以後不久,頗有作為的楚成王就被他的兒子商臣害死了。商臣當了國君,就是楚穆王。楚穆王不甘心失敗,加緊操練兵馬,發誓要和晉國決一雌雄。他首先把附近的幾個小國兼並了,又把中原的陳、鄭等國拉了過去,周頃王六年(公元前613年),楚穆王正在雄心勃勃、發憤大幹的時候,突然得暴病死了,他的兒子旅即位,就是赫赫有名的楚莊王。
晉國見楚國忙於辦喪事,又重新會合諸侯,訂立盟約,隨後,把楚國拉過去的陳、鄭等國,又拉回到自己的勢力範圍之內。這一來,楚國的大臣們都心急如焚,要和晉國決戰。可是,楚莊王卻無動於衷。即位三年以來,他整天喝酒、打獵,不問政事,還在宮門口掛上塊大牌子,上麵寫著:勸諫者,死無赦!誰願意拿自己的性命開玩笑呢?大臣們不敢上諫,隻能看著楚莊王整日無所事事。
一天,大夫申無畏來見楚王,讓楚王猜個謎語。申無畏說:“楚國京城,有隻大鳥,五彩繽紛,整整三年,不飛不叫,滿朝文武,莫名其妙。請您猜猜看,這究竟是隻什麼鳥?”楚莊王一聽,笑著說:“我猜到了。這可不是隻普通的鳥。這隻鳥啊,三年不飛,一飛衝天;三年不鳴,一鳴驚人。你等著看吧。”申無畏明白了楚莊王的意思,他高興地退了出去。
又過了幾個月,楚莊王這隻大鳥依然如故,既不“飛”,也不“鳴”,照舊喝酒、打獵、欣賞歌舞。大夫蘇從忍耐不住了,便去見莊王。他一進宮門,就大哭起來。楚莊王說:“先生,什麼事這麼傷心啊?”蘇從回答說:“我為自己就要死去傷心,也為楚國即將滅亡傷心。我想勸諫您,你不聽,一定要殺死我。您整天打獵遊玩,不理朝政,楚國的滅亡不就在眼前了嗎?”楚莊王突然站起來,激動地說:“大夫的話全是忠言,我一定照你說的辦。”隨後,他便下令解散了樂隊,遣散了舞女,決心要幹一番事業。
楚莊王先是整頓內政,起用有作為的人,把申無畏、蘇從提拔到關鍵的職位上去。當時楚國的令尹鬥越椒野心勃勃,想要篡權。楚莊王便任命了三個大臣協助令尹工作,削弱了令尹的權力,防止鬥越椒叛亂。
楚莊王一麵改革政治,一麵擴充軍隊,加強訓練,準備和晉國決戰,報城濮之戰的仇。他即位的第六年,出兵滅了庸國(今湖北省竹山縣一帶);第六年,打敗了宋國;第八年,又打敗了陸渾(今河南省嵩縣北部)的戎族。楚莊王還在周朝的邊界上閱兵示威,嚇得周定王趕忙派大臣王孫滿去慰勞。楚莊王見了王孫滿,頭一句話問周朝京城宗廟裏的九鼎有多重。這九鼎是天子權力的象征,問九鼎的重量,實際上就是對周天王地位的威脅。
周定王二年(公元前605年),楚莊王討伐了陸渾的戎族,在回來的路上,突然發現叛賊鬥越椒發兵攔截,想把楚莊王消滅在郢城之外。楚莊王見鬥越椒人多勢眾,自己帶的兵剛剛打完仗回來,疲憊不堪,知道硬拚對自己不利,便說:“鬥氏一家對楚國有大功,寧肯讓越椒負我,我不能負越椒。”便派蘇從前去講和,鬥越椒沒有答應。到了晚上,楚莊王假裝退兵,卻把軍隊埋伏在漳水東岸,又派一隊士兵在本岸活動,引誘鬥越椒過河。自己則帶著少數士兵,躲在河橋的下麵。第二天早上,鬥越椒看到河對岸有楚兵,果然追過河去,等發現中了計,想往回撤退,橋已經被拆毀了。鬥越椒驚慌失措,急忙命令士兵涉水過河。士兵們正要下水,隻聽對岸一員楚將大聲喊:“大將樂伯在此,鬥越椒快快投降!”說完,命令士兵奮力射箭。鬥越椒也急令士兵向對岸射箭。在雙方對射之中,樂伯手下的神箭手養由基一箭射死了鬥越椒。鬥家將士見主將身亡,便四下逃散,楚軍分頭追剿,取得了全勝。
楚莊王平定了內亂,又經過多年的準備,決定揮兵北上,同晉國爭霸。
周定王九年(公元前598年),楚莊王趁陳國內亂的機會,派兵降服了陳國。第二年,楚莊王親自率領大軍去攻打鄭國。陳、鄭都是晉國的保護國,楚國出兵陳、鄭就是向晉國挑戰。