晋文公称霸中原以前,曾与楚国在城濮展开战斗,楚国落败。过了几年,楚庄王继位,他也立志做一方霸主。
楚庄王一面改革政治,一面扩充军队,加强训练,平定了内乱,又经过多年的准备,决定挥兵北上,同晋国争霸,报城濮之战的仇。
公元前598年,楚庄王趁陈国内乱的机会,派兵降服了陈国。第二年,楚庄王亲自率领大军去攻打郑国。陈、郑都是晋国的保护国,楚国出兵陈、郑就是向晋国挑战。
晋国当然不甘示弱。于是,两国军队在必阝城(郑地,今河南省郑州东)郊外大战起来。晋兵士气不振,指挥不灵,抵抗不力。而楚军一鼓作气,往来冲杀,没多久,就把晋军打得溃不成军了。
楚庄王率领楚军开进必阝城。有人劝他乘胜追击,楚庄王说:“楚国自从城濮之战败给晋军,就不敢和晋国争锋,这次胜利,可以洗掉耻辱啦。晋、楚都是大国,早晚得讲和,何必多杀人呢?”于是,下令收兵,放晋国官兵渡河回去。
必阝城一战,拥有六百辆兵车的晋国大军,一夜之间,几乎全军覆灭。楚庄王终于洗却耻辱,如愿当上了诸侯霸主。
自楚庄王继位后,三年内,整天喝酒、打猎,不问政事,还在宫门口挂上块大牌子,写着“劝谏者,死无赦!”后被苏从冒死劝谏感动,决心要干一番大事业。
晋国曾派使者与楚国讲和。这使者因未能当上大夫心怀不满,一气之下向楚国下了战书,致使晋国在没有准备的情况下应战而大败。