楚国在前608年的北林之战中击败晋军,而晋军在前600年的柳棼(fén)之战和前599年的颖北之战中,击败楚军。郑国认为:“晋、楚无信,我焉得有信?”采取了“居大国之间而从于强令”的策略,谁强服谁,这就引发了晋、楚为争郑而爆发的邲之战。 前597年,楚庄王再次亲率楚军围攻郑国,合围之后,猛攻十七昼夜。郑国仗恃着晋国支持,拒绝投降。晋国闻之,派荀林父率军再次救郑,双方陈兵于邲,一场大战一触即发。 楚国为麻痹晋军,两度求和示弱,晋军主将纷纷无意决战,便答应议和。正当双方行将盟会之时,楚军遣小股兵力袭扰诱战,晋将魏錡、赵旃违令攻楚,恰好中了楚国的圈套。楚国名相孙叔敖见晋军来挑战,决意先发制人,命左、中、右三军及楚王亲兵布好阵式,掩袭晋军。
晋军准备不足,仓皇应战,便像山崩一样的溃败,晋中军帅荀林父见前有强敌,后有黄河,心中慌乱,竟在中军敲响战鼓说:“先渡过河的有赏!”兵士们狼狈奔窜,跳进黄河,争船抢渡。先上船者挥刀乱砍,刹那间血淋淋的手指堕满各船,船上兵士纷纷把手指捧起扔进黄河。
在晋军这场大溃逃中,发生了一件令人啼笑皆非的事情。晋国有战车陷入泥坑,无法前进,楚人教他们抽去车前横木。马仍盘旋不进,楚人又教他们拔去大旗,扔掉辕前横木,战车才冲出陷坑。
而倔强的晋军,反过头对楚人说:“吾不如大国之数奔也”(我没有你们楚国人熟悉逃跑的招数啊!讽刺楚国以前老是打败仗,善于逃跑)。”值此败军之际,曾经称霸一时的晋军,除了逞这口舌之快,也是无可奈何了!
当晚,溃散的晋军,争舟渡河,喧嚣之声不绝于耳。次日,楚军进驻衡雍,辎重到达邲地。楚王在衡雍祭祀河神,并修筑楚先君的宗庙,向先君庙告捷而后凯旋。
邲之战是晋、楚争霸中的一次重要战役。楚胜晋败,郑国自然屈从了楚国。楚庄王为控制整个中原,又进击宋国。周定王十二年(公元前595年)秋九月,楚庄王出师伐宋,经九个月围困,宋国陷入困境,达到了易子而食的程度。
而晋国不能驰援,次年三月宋国力尽降楚。之后,鲁国也转而依附楚国。楚又与齐通好。一时间长期称霸的晋国势头渐衰,地位渐失,中原形势完全落入楚国的掌握之中,楚庄王如愿以偿地取得了中原霸权。