第三節 楚國的鼎盛,楚莊王的霸業
一、楚穆王的向北擴張
楚國至穆王時勢力日強,先后滅江(今河南息縣西南)、六(今安徽六安北)、蓼(今河南固始東北)等國,當其看到晉國衰落,就向北推進。楚大夫范山對穆王說:“晉君少,(志)不在諸侯,北方可圖也。”(《左傳》文公九年)楚王聽從了范的意見,出兵狼淵(今河南許昌西)伐鄭國,生獲鄭大夫公子堅、公子龍和樂耳,鄭只得與楚講和。晉趙盾帶領魯、宋、衛、許等諸侯軍救鄭,已趕不上楚軍,只能作罷。不久,楚又起兵侵陳,攻克了壺丘(今河南新蔡東南),楚將公子朱又從東夷伐陳,陳軍將其擊敗,俘獲了楚公子筏,但陳仍怕楚,反與楚講和。次年,鄭伯和陳侯與楚王在息相會,蔡也與楚一起領兵駐厥貉(今河南項城附近),圖謀伐宋。宋主動去迎接楚王,表示聽從其命,更引導楚王到本國孟諸(今河南商丘附近)去田獵。楚司馬下令清晨就駕車并載著取火器物出發,宋君沒有照辦,其仆從被楚司馬文之無畏責打并示眾,這就結下了宋對無畏的仇恨。厥貉之會,麇(今湖北鄖縣附近)國君也參加,但會間私自逃回。次年楚王帶兵伐麇,楚將成大心敗麇兵,攻到麇都錫穴。不久,楚又拘留了舒國(今安徽舒城、廬江、巢湖一帶)和宗國(今舒城、廬江附近)的君主,圍困了巢國(今安徽六安東北),楚穆王向外擴張之勢已咄咄逼人。
二、晉秦河曲之戰,晉召新城之盟
公元前619年,秦國因晉衰而進伐,奪取了晉的武城(今陜西華縣東北),以報令狐役之仇。兩年后,晉回伐秦,奪取少梁(今陜西韓城)。同年夏秦又伐晉,取北徵(今陜西澄城)。又隔二年,秦再起兵攻晉,奪占羈馬(今山西永濟南),晉起兵抵御,趙盾帥中軍,荀林父為佐;郤缺帥上軍,臾駢為佐;欒盾帥下軍,胥甲為佐。范無恤為戎車御,在河曲(今山西永濟南)與秦軍相遇。臾駢說:“秦不能久,請深壘固軍以待之?!保ā蹲髠鳌肺墓辏韵乱耐┶w盾聽從此見而堅守。秦軍想戰,秦伯就問原晉的逃臣士會如何能戰。士會認為晉軍固守不出必是趙氏新用的屬吏臾駢出的計謀,用這辦法使我軍疲乏。他向秦君建議:趙家庶子趙穿,是晉君的女婿,很得寵,年少不懂軍事,好勇而狂,他妒忌臾駢為上軍佐,如若使輕兵去激怒趙穿,他定出戰。秦伯聽信其言,派兵進攻晉上軍,趙穿果然不聽勸阻單獨出兵,趙盾知道后大急說:“秦獲穿也,獲一卿矣。秦以勝歸,我何以報?”于是只得率大軍出戰。兩軍剛一接觸就彼此退兵。晚上,秦派行人到晉軍營約明天出戰。臾駢從秦使者的表情失常中,推測秦軍將要逃遁,要求晉軍逼之河上追殺,敵人必定大敗。但遭到趙穿的堅決阻攔,于是晉軍沒有敢出襲。秦軍聞訊連夜逃走,途中又進攻了晉的其他地方,一度進入了瑕(今河南陜縣西南)。這次戰爭晉原可取勝卻反敗,反映了晉因趙氏掌權而衰敗。
河曲之戰結束后,晉怕秦軍再犯,派大夫詹嘉駐瑕,戍守桃林之塞(今河南靈寶閿鄉西)以堵秦東進。晉國怕秦重用逃臣士會,公元前614年夏,晉六卿在諸浮會見,共商如何召回外逃的賢才,趙盾提出:“隨會(士會)在秦,賈秀(狐射姑)在狄,難日至矣,若之何?”(《左傳》文公十三年,以下引文同)。荀林父主張召善于外交又是舊勛之臣的狐射姑回來。郤缺反對,主張召“能賤而恥,柔而不犯”的士會回來。趙盾可能怕狐射姑回來奪權,于己不利,便聽從郤缺的話,暗派魏地(今山西芮城東北)的守將魏壽余假意以魏叛晉降秦,去引導士會回國。趙盾把壽余的妻子兒女拘捕,讓壽余連夜逃走。秦伯接受了壽余以魏歸降。壽余在上朝時暗踏士會的腳,向他示意。士會心領神會。秦伯領軍駐河西,想去接收河東的魏邑。壽余向秦伯建議派在秦的晉人和自己先去告喻魏守吏。秦伯就派士會,士會假意推辭說:“晉人虎狼也。若背其言臣死,妻、子為戮,無益于君,不可悔也?!鼻夭钢影l誓說:“若背其言,所不歸爾帑者有如河!”士會這才動身,臨行時秦大夫繞朝送了一條馬鞭給士會,并拆穿其詭計說:“子無謂秦無人,吾謀適不用也?!笔繒蛇^河,魏人歡呼著將其擁還。秦伯知道后,無奈,只好將士會的妻子和兒女放歸,他親屬中不愿回晉的改姓劉氏(《左傳》文公十三年)。
同年,魯文公至晉進見,修前盟;衛侯與魯文公在沓相會,請其代向晉講和;魯文公自晉回,鄭伯也與其在棐相會,請他代向晉通好,魯文公都照辦了。當衛、鄭又轉向晉的第二年,趙盾邀集魯、宋、衛、鄭、陳、許、曹各國在新城(今河南商丘西南)會盟,謀為邾國立嗣,結果未成,蔡國未與會。次年晉命郤缺帥上、下兩軍進伐,攻入蔡都,與蔡人結城下之盟而還。
新城之會,中原諸侯仍向晉,說明晉雖中衰,但余威尚在。
三、齊懿公奪權,齊國壓魯國
公元前633年,齊孝公去世,弟昭公即位。昭公娶魯女子叔姬為妻,生子舍。子叔姬不為昭公所寵,太子舍在齊也無權威。昭公弟公子商人卻常施惠于國人,盡其家財借貸給公室和官吏,并多養死士,想伺機奪權。公元前613年夏,齊昭公去世,舍即位,公子商人將舍殺死,將君位讓給公子元(商人兄),元不接受,商人就自立為君,是為齊懿公。魯國怕子叔姬在齊有危,就請周王讓齊國送其回魯。周派單伯至齊交涉,齊懿公不留情面,反將單伯和子叔姬一齊拘捕。魯國又派大臣季孫行父去晉國,請晉向齊交涉。齊因怕晉,只得釋放單伯,讓他去魯傳達送歸子叔姬之訊,但同時又起兵攻伐魯的西部邊境。魯國又派季孫行父到晉國去報告,于是這年冬,晉、宋、衛、陳、鄭、許、曹諸國在扈會盟,謀伐齊。齊國害怕,就向晉侯行賄,使盟會無結果而散。之后,齊為了照顧周王的面子,將子叔姬放歸魯。但不久齊又進攻魯的西部,并順道伐曹,攻入外城,以討伐曹朝魯之罪。在齊國的壓力下,次年春,齊魯兩國會盟,因魯文公有病,魯派季孫行父在陽谷與齊相會,齊懿公不肯結盟,定要等魯君病好再行盟誓。魯又派公子遂向齊納賄,雙方才在郪丘結盟。隔年,齊又攻魯的北部邊境,六月魯文公只得親自與齊懿公會盟。公元前609年,魯文公去世,齊懿公因內亂被殺,雙方因內政的需要而恢復了關系,但自此魯多以齊為馬首,似成其屬國。
四、宋亂、鄭叛,晉不競于楚
宋國在齊內亂之前也發生弒君事件。公元前620年,宋成公去世,其子杵臼即位,是為宋昭公。昭公即位前就想除去群公子,司馬樂豫勸說:“不可。公族,公室之枝葉也;若去之,則本根無所庇蔭矣。”(《左傳》文公七年)昭公不聽,引起宋穆公、襄公的族人率國人進攻公室,殺大夫公孫固、公孫鄭于宮中。司馬樂豫、右師公子成、左師公孫友等六卿居中調和。樂豫將司馬之位讓給公子印,才使內亂和解。昭公即位,下葬被殺的人,但內部并不平靜。宋襄公夫人(周襄王之姊,昭公祖母)因昭公對其不禮遇,就讓戴氏的族人殺死昭公的黨徒孔叔、公孫鐘離(襄公孫)及司馬公子卬。司城蕩意諸奔逃魯國。過了幾年,宋大臣高哀也因昭公不道義而逃魯。這時昭公的庶弟公子鮑對國人以禮相待;國內發生饑荒,他傾其家存糧借貸;對七十歲以上的老人均給施舍,還按時增加一些美味食品;他經常與六卿貴族疏通;尊待國中的賢良,周濟公室貴族的子孫。公子鮑儀表堂堂,連襄公夫人都想與其通奸,但他不亂倫,夫人只能幫其施舍。由于宋昭公無道,國人就想借襄公夫人的勢力立公子鮑為君。不久,襄公夫人謀劃讓昭公到孟諸去打獵,乘機將其殺死。昭公得悉,就將宮中珍寶盡數帶上,賜給其左右侍從,叫他們離開。當時從魯歸來的蕩意諸勸其出逃他國,昭公認為自己不容于大夫、祖母及國人,諸侯也不會收留的。而且已做了別人的君主,再做別人的臣下,還不如死。襄公夫人派人告訴蕩意諸讓其離開,蕩堅隨昭公不去。宋昭公打算去打獵,但未至孟諸,襄公夫人就派帥甸將其攻殺,蕩意諸也被殺。昭公死后,公子鮑即位,是為宋文公。晉國聽說宋國內亂,就邀合衛、陳、鄭等國兵討宋,后在扈會盟,結果仍讓公子鮑為宋國君。
當諸侯在扈相會時,晉因鄭國心向楚,就不見鄭伯。鄭大夫子家寫信給趙盾,詳細敘述了鄭服事晉國之事,以表忠誠,又寫出屈從楚之不得已,最后強硬地申訴說:“居大國之間,而從于強令,豈其罪也?大國若弗圖,無所逃命。”(《左傳》文公十七年)晉對鄭國的這種態度也無辦法,只得派大夫鞏朔到鄭國去修好。晉以趙穿、公婿池,鄭以太子夷、石楚互為人質。
鄭表面上雖與晉和好,但看到晉國在處理宋國和齊國的問題上無所作為,便私下又與楚結盟。公元前608年,鄭與楚合兵進伐向晉的陳、宋。晉趙盾帥軍救陳、宋,在棐林會合宋、衛、陳、曹四國兵伐鄭。楚將賈領兵救鄭,與晉軍戰于北林(今河南新鄭北),楚軍俘晉將解揚,晉退兵。不久,晉、宋兩國又伐鄭,以報北林之仇。第二年春,宋、鄭在大棘(今河南睢縣南)開戰,宋大敗。鄭俘宋帥華元,得到了樂呂的尸首,還繳獲戰車四百六十乘,俘虜二百五十人,并斬割了敵尸耳朵一百只。事后宋用百乘兵車和四百匹毛色漂亮的馬向鄭贖取華元,但贖物交付了一半,華元已潛逃回來。同年夏,晉、宋、衛、陳又聯兵伐鄭。楚將斗椒救鄭,晉不戰就撤軍。
鄭國叛晉,晉對楚不戰而退,這些都反映了楚晉之爭中,楚漸強、晉漸弱的形勢,正如《左傳》所說:“于是晉侯侈,趙宣子為政,驟諫而不入,故不競于楚?!保ㄐ辏?/p>
五、晉趙氏“弒”君,公卿始專政
晉靈公上臺時年幼,隨著年歲增長,他的惡劣品行日彰。他向國內百姓征收苛重稅賦,用來雕畫裝飾宮墻,又常站在高臺上用彈丸射擊行路人,以觀看他們躲避的窘相取樂。宮中廚夫因煮熊掌不熟,他將其殺死,尸體放在畚箕中,讓宮女擔著從朝堂走過。趙盾、士會在朝堂見到露在箕外的死人手,問知緣故,心中為其殘暴而憂慮。兩人商議,如一起進諫靈公會不接受,不如先由士會去說。士會三進三跪中堂,靈公知他要進諫,就假裝不知,最后才說:“我知所過矣,將改之?!笔繒锥鴦裾f:“人誰無過?過而能改,善莫大焉?!笔潞箪`公仍不改,趙盾屢次進諫,靈公很討厭,就派刺客麑去暗殺趙盾。見趙盾清晨穿著朝服睡著,覺得他對君主恭敬,真是百姓的主人,自己去刺殺是不忠,而不刺又是不信,于是就撞槐樹而自殺。不久,靈公又宴請趙盾,暗中埋伏甲士想殺盾,趙盾的車右提彌明覺察了這一情況,就快步登上殿堂對趙盾說:“臣侍君宴,過三爵,非禮也。”于是就扶趙盾下堂,靈公放猛犬追咬,提彌明將犬搏殺。趙盾說:“棄人用犬,雖猛何為!”于是兩人邊斗邊退,結果提彌明在與甲士的搏斗中殉難(《左傳》宣公二年)。在這緊急關頭,原先受過趙盾恩惠的甲士靈輒倒戈保護趙盾逃出了宮。趙穿得知宮中之事,舉兵進攻晉靈公,在桃園將其殺死。趙盾剛逃到邊境,聽到靈公的死訊就回來了。靈公一死,趙盾就讓趙穿到周王處迎文公的庶子公子黑臀回國即位,是為晉成公。原先晉國驪姬之亂時,曾立盟不準群公子住在國內,晉國所以無公族。成公即位后,才下令以國卿的嫡子作為“公族”,分給他們田地,讓他們作為公族大夫,并把官職授給卿的其他兒子,讓他們擔任“余子”之職,他們的庶子擔任“公行”之職。晉國從此恢復了公族、余子、公行三種官職。趙盾將公族的位子讓給其弟趙括,因為趙括母親趙姬勸趙衰從狄國接回趙盾母子,又將嫡位讓給趙盾。這次讓位是為報答趙括母親之恩。趙盾一支成為掌管旄車的余子之族,讓趙括統率他的舊族作為公族大夫。自此晉國卿族的勢力日益發展,公室日漸衰落,種下了以后“六卿專政”、“三家分晉”的根子。
六、楚莊王上臺時的嚴峻形勢
楚國自西周以來勢力一直在上升,雖在齊桓公、晉文公稱霸時有所阻遏,但隨著晉國霸業的中衰,楚國自穆王以來不斷向北擴展。公元前614年,穆王去世,第二年子侶繼立,是為莊王。莊王即位時幼弱,楚國內部不寧。公元前613年,令尹子孔和太師潘崇出伐舒、蓼,大夫公子燮和子儀守國。公子燮和子儀因不得志而作亂,派刺客殺子孔不成,便劫持莊王出都,將到商密時被廬邑大夫戢黎和副守叔麇誘殺,內亂方平。
公元前611年,楚發生大饑荒,戎族乘機進攻楚的西南境,一直深入到阜山(今湖北房縣南),進駐大林(湖北荊門西北),接著又攻打楚的東南邊境,進逼陽丘(今湖北鐘祥),侵入訾枝(今湖北枝江)。同時,庸國(今湖北竹山東)人率領群蠻(今湖南沅陵、芷江一帶)叛楚。麇國人帶領百濮聚在選,也準備進攻楚。在這嚴峻的形勢下,楚的申、息兩地的北門都不敢開,并商議遷都到阪高(今湖北當陽東北)的險地以避難。大夫賈反對退避,他認為:不如進攻庸國,麇和百濮原以為我們饑荒而不能出兵,如果我們出擊,他們必然害怕而敗散。楚王聽從其言,出兵十五天后,百濮果然潰散。楚兵從廬(今湖北南漳)前進,發庫存糧,上下同食。楚駐軍句澨(今湖北均縣),派廬邑大夫戢黎攻庸,打到庸的方城(今湖北竹山),庸人俘楚屬官揚窗。三天后,揚逃回,他認為庸兵眾多,群蠻相聚,不如回去重發大兵,合王軍共同進擊。大夫師叔反對,建議姑且再跟他們接戰,誘發敵人驕傲,我們再奮擊,必然勝利。楚就用師叔計,與庸兵接戰七次,都假意敗走。庸人只派裨、鯈、魚三邑的兵追趕。庸人自認為楚人不足以戰,便不設防。楚莊王乘傳車與大軍在臨品(今湖北均縣)相會,分軍二隊:楚將子越領軍從石溪(今湖北均縣附近)出發,子貝領軍從仞(均縣一帶)出發,夾擊庸兵。秦、巴兩國也發兵幫助楚人。群蠻見楚強,就只好與楚結盟。楚就滅了庸國。
七、楚莊王圖霸,問鼎中原
據說楚莊王剛即位時三年不聽國政,沉湎于酒色,日夜作樂,并下令說:“有敢諫者,死無赦!”大臣伍舉入諫,楚莊王左抱鄭姬,右抱越女,坐在鐘鼓間,伍舉問:“有鳥在于阜,三年不飛不鳴,是何鳥也?”莊王答說:“三年不飛,飛將沖天;三年不鳴,鳴將驚人。舉退矣!吾知之矣?!边^數月,莊王的奢侈生活有增無減,大夫蘇從冒死再進諫。莊王就聽從了大臣的進諫,擺脫了酒色,改革政治,誅殺了一百人,任用了伍舉、蘇從等一百人(《史記·楚世家》)。這一故事,一方面說明楚莊王是一個有雄心壯志的統治者,由于上臺時形勢不明,只能假裝沉湎于酒色,以觀察內外,一旦時機成熟就“一鳴驚人”,快刀斬亂麻地進行改革;另一方面也說明當時國內形勢是嚴峻的,改革時殺了百人,新用了百人,反映改革的阻力不小。
楚莊王在改革內政的同時,積極對外圖霸,在滅庸之后,又在北林擊敗晉軍,收服了鄭國。公元前606年,楚又攻打陸渾之戎(今河南洛水一帶),到達雒水,在周邊境陳兵示威。周定王派大夫王孫滿慰勞楚王,楚莊王竟向王使詢問周天子鎮國之寶九鼎的大小輕重。王孫滿見其別有用心,就追述了夏、商、周三代的興亡歷史,接著對楚王說:國家興衰“在德不在鼎”的輕重,最后說:“周德雖衰,天命未改。鼎之輕重,未可問也。”(《左傳》宣公三年)莊王聽了王孫滿這一席強硬的話,覺得周王室尚不可輕視,就退兵回國。楚雖退兵,但問鼎中原之事,反映楚欲北上爭霸的意圖已十分明顯。
由于鄭國又靠攏晉國,這年夏,楚莊王進伐鄭。但第二年國內發生了內亂。原先令尹子文死后,斗般做令尹,斗越椒為司馬,賈任工正。后因賈誣陷殺了斗般,斗越椒做了令尹,賈為司馬。斗越椒討厭賈,就帶領若敖氏的族人把賈囚在陽殺了,駐軍烝野,打算進攻楚莊王。莊王把文、成、穆三代王的子孫作為人質,去與斗講和,但斗越椒不接受。于是,莊王在漳澨發兵,秋天雙方在皋滸開戰。斗越椒用箭射楚王,一箭穿過莊王的車轅、鼓架,射在銅鉦上;又一箭飛過車轅,透過車蓋。楚軍懼怕,開始退卻。楚王派人在軍中到處喊說:我們的先君文王攻克息國,得到三枝利箭,斗越椒只偷去二枝,已經用完了。以此穩定軍心。接著擊鼓進軍,將若敖氏消滅。在楚內亂之時鄭國也內亂,鄭靈公被大臣公子歸所殺,弟堅嗣位,是為鄭襄公,襄公不服楚。楚莊王就在平定內亂后又繼續進攻鄭,經幾年戰爭,楚才和鄭媾和,鄭再向楚屈服。但不久鄭又與晉講和,晉、魯、宋、衛、鄭、曹諸國在黑壤(今山西沁水附近)會盟,周王也派王叔桓公來監會,以策劃對付不服從晉的國家。
在楚莊王進攻北方無重大成效時,公元前601年南方舒姓諸國(今安徽舒城、廬江、巢湖一帶)發生叛亂,楚就發兵攻打舒蓼,將它滅掉。楚莊王為了劃定疆界,就一直到達滑汭(今安徽合肥一帶),與吳、越兩國結了盟才回去。從此楚在南方江淮地區的勢力鞏固,于是就全力向北爭戰。
八、楚莊王破陳、服鄭,北向爭霸
公元前601年,原歸向楚的陳國與晉講和,楚莊王起兵伐陳,陳又附楚。第二年晉國在扈(今河南原陽西)與宋、衛、鄭、曹諸國相會,陳侯未去參加,晉國荀林父率領諸侯軍攻打陳國。不巧晉成公在扈去世,荀林父只好回軍。楚因前幾年楚鄭在厲媾和時鄭伯逃歸之事再次起兵伐鄭,晉國派郤缺救鄭,晉、鄭在柳棼打敗了楚軍。鄭國人都很高興,但大臣子良擔心地說:“是國之災也,吾死無日矣?!保ā蹲髠鳌沸拍辏└袅艘荒?,鄭和楚媾和,諸侯軍又攻打鄭,與鄭講和后回去。不久,楚莊王再伐鄭,晉派士會救鄭,在潁水北趕走楚軍,諸侯軍在鄭地戍守。公元前598年,楚莊王又伐鄭,攻到櫟(今河南禹縣)。鄭大臣子良建議:晉、楚兩國不致力于德行,而用武力相爭,我們靠攏打來的就行了,“晉、楚無信,我焉得而信?”(《左傳》宣公十一年)于是又屈從楚。楚、陳、鄭在辰陵(今河南淮陽西)結盟。鄭臣子良的話反映了夾在晉、楚之間的小國只能以隨風倒的態度來茍延殘喘。
鄭、陳剛服,楚莊王又攻打宋,親自領兵駐郔(今河南項城),命令尹艾(孫叔敖)在沂(今河南正陽)筑城,工程僅三十天就完成,將其作為北進的基地。這年冬,楚因陳國大夫夏徵舒殺了國君而伐陳。楚莊王對陳國人表示,只是討伐夏氏。楚軍進入陳國都,殺死夏徵舒,將其在栗門車裂,但卻下令將陳國改為楚的縣。大夫申叔時出使齊才歸來,對楚王此舉不表慶賀,楚王責問他,申勸諫楚王不要“討召諸侯,而以貪歸之”(《左傳》宣公十一年)。楚王聽從了申叔時的話,重新封建了陳國,只從每鄉帶走一人回楚國,將他們合在一處,稱為“夏州”,以示討陳亂的功績。
辰陵之盟后,鄭又附晉。公元前597年楚又伐鄭,包圍鄭國十七天。鄭人打算求和,但占卜的結果不吉利。于是準備前往祖廟號哭,并讓每一條街巷都預備一輛車以示決戰到底,為此而占卜的結果是吉利。因此都城的人聚在太廟中大哭,守城的將士也在城上大哭,決心死戰。楚莊王見此情景下令退兵,想招降鄭國。鄭人利用時機修筑城墻。楚軍重又圍困,攻了三個月,破城而入。楚軍從皇門攻入,到達大路上,鄭伯(襄公)去衣露體,牽著羊迎接楚王,向楚哀求不要將鄭國滅掉。楚王認為鄭國君還能用民,就退兵卅里,允許其講和,派大夫潘尪進城與鄭伯結盟,鄭以大臣子良到楚國作人質。從此鄭國屈服于楚。
九、邲之戰,楚莊王稱霸
公元前597年夏,晉軍救鄭,由荀林父率領中軍,先縠作為輔佐;士會率領上軍,郤克作為輔佐;趙朔率領下軍,欒書為輔佐。趙括、趙嬰齊擔任中軍大夫,鞏朔、韓穿擔任上軍大夫,荀首、趙同擔任下軍大夫。韓厥任司馬。晉大軍到達黃河時聽到鄭已和楚講和,荀林父就想回兵。士會也認為楚國內政穩定,制度健全,國力強大,不可與其爭斗,應退兵。但先縠反對,他表示,“由我失霸,不如死”(《左傳》宣公十二年)。接著就獨自帶領所部軍隊渡過黃河而去。這時司馬韓厥勸荀林父為減少罪責應一同進兵,于是晉全軍渡河。楚莊王統兵北進至郔(今河南鄭州北),沈尹率領中軍,子重率領左軍,子反率領右軍,打算在黃河讓戰馬飲了水就回軍。聽到晉兵已渡河,楚莊王便想退兵。寵臣伍參想要作戰,令尹孫叔敖反對,回車南向。伍參給楚王分析了晉國的軍政情況,認為能夠取勝。楚王聽從,下令轉轅北向,駐軍在管(今河南鄭州)等待。晉軍駐扎在敖、鄗二山(今河南滎陽北)之間。鄭國派使者到晉軍中表示對晉無二心,并建議乘楚因屢勝而驕,不設防,與鄭內外相擊楚軍。晉軍諸將聽了鄭使的話,對此爭論不休。楚王連續兩次派使者去晉議和,以麻痹晉軍,晉已答應,并定下結盟日期。同時楚又派軍向晉挑戰加以試探。晉將魏锜和趙旃都因求高官而不得,心中不滿,想使晉軍失敗,請求出使楚營,荀林父答應了。于是魏、趙先后前往楚營。兩人去后,郤克、士會認為這兩個心懷不滿的人去楚,會挑起事端,不加防備必然失敗。而先縠卻認為荀林父領兵無定策,多加防備沒有必要。由于將領中思想不統一,就各行其是。上軍的士會獨自派鞏朔、韓穿率領七隊兵埋伏在敖山之前。中軍大夫趙嬰齊派遣他的部下先在黃河中準備了船只。魏锜先來到楚軍,請戰后返回時,楚將潘黨追趕,魏射死一鹿獻給潘,潘不再追魏。魏走后,趙旃在傍晚到達楚營,在軍門外席地而坐,派遣他的部下先沖進楚營去作戰。楚王乘左廣車(楚王的指揮車,一廣三十乘,分左右兩廣互相接替)追趕趙旃,趙棄車逃入林中,楚將屈蕩和他搏斗,獲取了他的甲裳。晉軍派守軍駕車來接魏、趙,楚將潘黨望見車塵,派人報告楚營說晉軍已來。楚人也害怕莊王輕入晉軍,就出營結陣迎戰。孫叔敖下令急速掩襲晉軍。荀林父面對楚軍的進攻不知所措,在軍中擊鼓宣布:先渡過河去的有賞!中軍、下軍爭著上船,先上船的人用刀砍后來人的攀船手指,船中斷指多得可用手捧。晉軍向右轉移,只有上軍因士會先有準備而沒有動。楚工尹齊帶領右方陣軍追趕晉下軍,潘黨率領后備的戰車四十輛,跟隨唐侯作為左方陣以迎擊晉上軍。士會親自殿后,指揮上軍徐徐后撤,沒有戰敗。趙旃用他的兩匹好馬幫他的哥哥和叔父逃跑,自己用別的馬駕車,碰上敵人不能逃脫,就丟掉戰車,跑進樹林里。晉將逢大夫犧牲了自己的兩個兒子,讓趙登車逃脫。楚將熊負羈俘獲了晉將知罃。知之父(知莊子)帶領所部回攻楚軍,魏锜駕車帶士兵跟從。知莊子射殺了楚將連尹襄老,將其尸體裝上車,又射中并俘虜了楚公子穀臣,才回軍。到了晚上,楚軍進駐邲(今河南鄭州西北)。晉國剩余的士兵潰不成軍,連夜渡河,喧鬧了整整一夜。楚軍移駐黃河邊的衡雍(今河南原陽),祭了河神,筑了一座祖廟,向先祖報告了勝利,然后班師。晉軍回國,荀林父請求死罪,晉侯打算答應,大夫士貞用楚王殺令尹子玉有利于晉的事諫勸,晉侯聽從其言,讓荀林父官復原位。
邲之戰,晉敗楚勝,并不是晉無力量,而是其內部思想不統一,主帥指揮無方,這說明晉中衰的原因在內部,而不是楚的力量完全超過了晉。
邲之戰,楚軍大敗晉軍后,鄭、許兩國君到楚國表示歸附。莊王又攻宋的與國蕭國(今安徽蕭縣西北),宋派軍救蕭,但楚仍攻滅了蕭國。為了對付楚,晉、宋、衛、曹諸國在清丘(今河北濮陽附近)共同立約:“恤病,討貳”(《左傳》宣公十二年),即大家共濟災患,討伐不服之國。盟后,宋因陳服楚而伐陳,衛國卻反去救陳。楚莊王親征宋。晉國責問衛救陳之罪,衛執政孔達自殺,衛人以此來向晉解說而免于被討伐。不久,晉又起兵伐鄭,為邲之戰鄭幫楚的緣故。晉用中行桓子的計謀,一面通告諸侯,一面進行閱兵,然后回國,想以嚴整的軍伍來威迫鄭來歸附。鄭國害怕,派子張到楚國代替子良為人質。鄭伯又親自到楚國,與楚共商對付晉國的策略。這時,東方的齊國乘晉新敗攻打服晉的莒國(今山東莒縣)。楚國為了聯結齊國共同對晉,特派大夫申舟到齊國去聘問,并下令不要向宋國請求借路。申舟因前次孟諸之役得罪了宋國,怕過宋時被殺,楚王向其保證,如果殺他,將出兵攻宋。申過宋國時,宋人不讓其通行。宋大臣華元認為反正一樣滅亡,宋就殺了申舟。楚王得知后大怒,立即起兵攻打宋國,圍困了宋都。魯國因歸向齊國,派公孫歸父在宋國會見楚王。宋國派樂嬰齊到晉國告急。晉國不進兵,只派遣大夫解揚到宋國,告訴宋,晉軍已經出發,即將到達,讓他們不要投降。解揚經過鄭境,被鄭人捉住獻給楚,楚王給其重賄,讓他反勸宋人歸降。他假意答應,楚人將他放在樓車上向宋人喊話,他仍舊依照晉的話囑咐宋國。楚兵圍困宋國九個月攻不下,楚王打算撤軍,大臣們反對,并建議在宋城外蓋起房子,分兵去種田,以示堅困久留。宋人害怕,派華元乘夜偷進楚營,直登元帥子反的床,劫持了他,讓他退兵卅里,答應講和。子反害怕,就和華元盟誓,然后告訴楚王。楚退兵卅里,宋和楚媾和。華元去楚當人質。楚國壓服了宋,這樣中原主要小國都歸附了楚,楚莊王的霸業大盛。
在楚國勢力大增、晉國中衰之時,赤狄乘機連年侵襲晉地。公元前596年,晉大夫先縠更勾結赤狄攻晉。公元前594年,赤狄中的潞氏部發生內亂,晉乘機擊敗赤狄,滅潞氏。第二年又滅了赤狄的甲氏、留吁、鐸辰部。至公元前588年,最后擊潰赤狄的余部廧咎如,赤狄完全滅亡。原來見衰的晉國因征服了赤狄而力量又增強。
晉楚爭霸,雖然楚莊王稱霸,但雙方的力量相距并不很遠。晉中衰的原因在于內部矛盾,所以隨著晉內部相對團結,加之對狄人的征服,晉楚之間的較量仍會出現倒轉之勢。