楚成王长期在外征战,国内政事基本交给了太子熊商臣处理,逐渐的楚国国内就形成了一股太子势力。
城濮之战后,楚成王战败威信受到了很大打击,年老体弱的楚成王逐渐对太子产生猜忌。
公元前626年,楚成王想要废黜太子熊商臣,改立年幼的熊职为太子。但这个消息很快通过内线传到了熊商臣的耳中,惊慌下熊商臣找到老师潘崇。
为了验证消息的真实性,潘崇要求熊商臣假装激怒他的姑姑江芈,江芈中计将楚成王准备废黜熊商臣的计划脱口而出。
同年10月,熊商臣突然率领王宫的警卫军包围楚成王的寝宫,并逼迫楚成王自杀。楚成王为了给救援自己的力量争取时间,向熊商臣请求吃了熊掌再死,久经政坛的熊商臣岂能不知楚成王的意思,断然拒绝了楚成王的要求,没有办法的楚成王只得上吊自杀,太子熊商臣即位,是为楚穆王。
楚穆王即位后,首先在楚国进行了大清洗,并于公元前624年出兵攻打反对自己的江国。危亡之际江国国君向晋国求救,晋国派出先仆率军南下,并说服周襄王支持,从道义上压制楚国。
公元前623年秋,秦穆公为了报复崤山之仇派遣孟明视率军攻打晋国,楚穆王抓住机会迅速派出大军一举灭亡江国。
第二年,秦穆公为了给盟友江国报仇,出兵攻打楚国都城郢都(下郢,今天河南淅川西南),但楚穆王并没有理会秦军的攻击,反而趁此机会将国都往南迁到了上郢(今天湖北宜城东南)。并亲自率军对南面的东夷势力进行打击,以确保楚国后方的安全。
公元前621年,晋襄公去世,晋国内部陷入内乱,各卿士为了掌控晋国展开了内斗。
楚穆王在大臣范山的建议下,趁着中原混乱之际,从狼渊(今天河南许昌西)出兵攻打郑国,迫使郑国臣服于楚国,以打开进入中原的通道。
正当楚穆王向中原进展时,楚国内部却发生内讧,楚国斗氏家族谋划刺杀楚穆王,被楚穆王得知后,被迫命令楚军撤回国内。
公元前615年夏,楚国令尹成大心去世,为了打压斗氏家族的势力,楚穆王任用了成大心的弟弟成嘉为令尹,这激起了若敖斗氏家族的不满,他们联合家族属国群舒叛乱,楚军不得不再次从中原前线撤回楚国,对群舒进行镇压,先后俘虏了舒国国君、宗国国君,并灭亡了巢国,将楚国势力向江淮地区(今天安徽中、西部)进一步推进。
在解决了楚国后方的隐患后,楚国终于可以全心向中原进发时,公元前614年,楚穆王病重,不久就去世,年轻的太子熊侣即位,是为楚庄王。
楚庄王即位时,还不满20岁,政治经验还是个人威信都不足,楚国内部各方势力蠢蠢欲动。
公元前613年秋,斗氏家族斗克趁楚穆王刚刚去世,而令尹成嘉出兵在外,宣布郢都戒严,控制了郢都的警卫力量,并派人刺杀令尹成嘉。
成嘉、潘崇得知消息后,迅速率军返回将郢都城围困了起来。斗克等人抵挡不住,被迫挟持楚庄王从郢都突围,在途径庐地时,被庐地大夫戢梁诱骗杀死,楚庄王才幸运的得以获救,并返回郢都。
经历这件事后,楚庄王明白要想在楚国这混乱的政局中活下去,只有装疯卖傻,于是他开始沉迷于酒色中,给大家的印象就是没有什么能力好控制的傀儡。
公元前611年,楚国发生大饥荒,巴国东部地区的山戎族,楚国东部地区夷、越族入侵楚国,不久,一直臣服楚国的庸国联合部分蛮族也起兵反对楚国,刚刚被楚国征服的麋国也出兵准备偷袭郢都。
各地告急的文书如雪片般飞入郢都,但楚庄王还是像没事般继续饮酒作乐,朝中一切事务全部交由成嘉、斗般、斗椒等若敖氏掌管。一些忠于楚庄王的大臣看到这种情况冒死直谏,楚庄王看到时机已到,明白了那些人是忠于自己,那些人是反对自己的以后,马上改变以前堕落的形象。
楚庄王直接绕过令尹斗般,亲自率领军队攻打叛乱中最强大的庸国,并联络秦国、巴国以及部分蛮族合击庸国,楚庄王亲自到前线督战,在他的激励下很快庸国被灭亡。在平定了内乱后,楚庄王的威信得以建立,统治趋于稳定,于是萌生了北上争霸的想法。
当时中原国家中晋国依然是最强大的国家,但因为国内君权衰弱,卿族势力增大,内部争斗十分激烈。
公元前627年,秦军在攻打郑国返回国内途中,经过晋国崤山时遭到了秦军的伏击,秦军包括主将孟视明、西乞术、白乙丙在内全部被消灭和俘虏。为了报仇,秦国卧薪尝胆积蓄力量开始不断对晋国发动进攻,至此晋国陷入到了秦晋相斗时期,这给了楚国北上争霸提供了有利条件。
公元前610年,晋国在扈地召集各诸侯来会盟,当郑穆公风尘尘仆仆到来时,晋国以郑国怀有二心与楚国联盟为名,拒绝了郑国参加会盟。郑国大臣姬家于是写了一封私信给晋国执政大臣赵盾,向他解释郑国的苦衷,晋国才同意郑国会盟,但经历这件事后,郑国开始改变以往策略,加强了与楚国的关系。
公元前608年,郑国宣布背叛晋国与楚国结成同盟关系,这个消息传出后,大量国家开始学习郑国,在晋楚之间左右摇摆,楚国的势力开始渗入中原地区。
公元前607年,在楚国的支持下,郑国出兵攻打宋国,俘虏了宋国大臣华元,缴获战车460辆。秦国也趁此机会出兵攻打晋国,以报复崇之战晋国的入侵。面对两面夹击,晋国被迫放弃救援宋国,避免与楚国直接交锋,将主要精力用在了对付秦国。
公元前606年春,趁着秦晋两国相互相斗时,楚庄王以勤王的名义亲自率领军队北上攻打陆浑之地的戎狄部落(散居于今天黄河以南、熊耳山北面之地的戎狄部落),大军一路直抵洛水岸边,在洛邑附近举行了阅兵仪式。周定王得知后十分害怕,派出王孙姬满带着丰厚的礼物来到楚军慰劳。
楚庄王得意洋洋,向姬满询问王室权力的象征九鼎,遭到了姬满的挖苦。楚庄王知道此时自己取代周天子,必然会成为各国的公敌,而楚国现在的实力还不足以对抗晋、齐、秦、吴等国,于是很快就撤离了洛邑回到了楚国。
回到楚国后,为了彻底解决楚国内部的隐患,楚庄王用计逼迫若敖氏叛乱,并在第二年,将若敖氏的重要属国舒国灭亡。
在解决若敖氏后,楚庄王全心用在了北上中原争霸上。郑国是晋楚争霸的焦点,当初城濮之战时,楚国的西面有秦国的威胁,中间宋国背叛楚国,导致楚国只得放弃与晋国的争霸,所以楚国若想夺得霸主之位,就必须得彻底征服宋国。
崤之战后,秦晋反目,楚国的西面不再受到威胁,而宋国也在楚国的不断打击下归附了楚国,现在楚国唯一面临着的障碍就是进入中原的必经之路郑国。
郑国因为与晋国接壤,直接受到了晋国的威胁,为了生存时常在晋楚之间摇摆,所以晋楚双方围绕着郑国展开了长久的争夺。
公元前599年,楚庄王趁晋国刚刚改换执政,内部尚未稳固之际,派兵攻打郑国,晋国执政卻缺派遣士会率军救援郑国,两军在颖水北面对峙,楚庄王不愿意与晋国直接发生冲突,于是率军撤回了楚国。
公元前597年,荀林父出任晋国执政,由于荀林父的威望不足,其他各卿族对他的上台并不服气,晋国内部分裂十分严重。楚庄王抓住机会亲自率领楚军再次攻打郑国,郑国抵挡不住向晋国求救,晋国执政荀林父率领三军南下救援郑国。
楚军听说晋军渡过黄河,内部产生了战与和的争议。楚庄王、孙叔敖没有信心击败晋军想要退兵,但他的心腹伍参却提出反对意见。
当两方争执不休时,关键时刻楚庄王下定决心,命令孙叔敖调转车头北上,将大军驻扎在管(今天河南郑州市)等待晋军。
其实晋军当时内部对战与和也争议颇大,主帅荀林父等人主张和,而副主帅先穀主张战,先穀为了迫使荀林父渡河决战,在没有通知荀林父的前提下,率领自己手下的军队连夜渡过黄河寻找楚军作战,害怕先穀有失的荀林父只得在第二天率领大军渡过黄河,将军队驻扎在敖、鄗。
郑国为了生存,希望晋楚两强决战,以便它择胜而从,于是它派出使者皇戌劝说晋国对楚军作战。
正在晋军主帅荀林父犹豫不决时,楚军派出使者樊姬来到晋军探听虚实。晋军副主帅先穀觉得主帅荀林父的说辞太软弱,于是又唆使将军赵括警告楚军说:我们国君派我们来就是要把楚军赶出郑国。
楚国使者回到军营后,将晋军内部不和的消息告诉给了楚庄王,坚定了楚军攻击晋军的决心。
楚军再次派出使者假装向晋军求和,等到了约定的日期后,派出许伯、乐伯、摄叔驾着战车向晋军挑战,试探晋军的虚实。
恰在此时,晋军将领魏琦、赵旃因为在六卿调整会议上没有得到自己所想要的利益怀恨在心,想要晋军在作战失败,于是假装向楚国结盟为名出使楚国。因为楚国低声下气的求和姿态让晋军内部放松了警惕,所以当时晋军根本就没有做任何作战准备,都以为两国达成和盟就会撤兵。殊不知魏琦、赵旃两人根本就没有去与楚国讲和,而是在不断挑衅楚军。
楚军见晋军来挑战,于是先发制人命令三军及楚王亲兵布好阵式向晋军掩面袭击而去,没有任何防备与准备的晋军顿时大败。大量晋军为了逃命向后方的黄河跑去,这个时候主帅荀林父也作出了十分错误的决定,竟然下令在中军击鼓,说:“谁先渡过黄河的有赏。”顿时晋军中、下两军一片混乱的向河岸涌去,相互之间争夺船只,先上去的人更是拔出大刀就是乱砍,船上的断指随手可以捧起一大捧。
邲之战后,楚军乘着胜利又进击宋国。公元前595年9月,楚军出兵围困宋国都城,经过九个月的围困,宋国陷入困境,达到了易子而食的程度,晋国却无能力再出兵救援,宋国被迫归降楚国,鲁国见晋国无力对抗楚国后,也派人向楚国臣服。齐国见此情景,也开始摆脱晋国的控制与楚国达成反晋联盟。