勸阻不成
荀林父之父為大夫,事跡不詳。荀林父在晉文公建立霸業的事業中即嶄露頭角,晉文公三年(前633年),城濮之戰前,擔任晉文公的御戎(駕駛國君戎車的別名)。晉文公四年(前632年),晉文公“作三行(三支步兵隊伍)以御狄”,荀林父擔任了中行的主持。其後任上軍佐、中軍佐,至晉景公時出任中軍元帥,主持國政。
公元前620年,晉襄公死後,晉人討論立嗣君,都主張立年長的,派先蔑出使到秦國迎接公子雍。後因襄公夫人穆贏大鬧朝廷指責朝臣:“舍適嗣不立,而外求君”,執政大臣趙盾等人就背棄先蔑而立了太子夷皋,是為晉靈公,引發秦晉令狐之戰。晉以箕鄭父居守、趙盾將中軍、先克佐之、荀林父佐上軍、先蔑將下軍、先都佐之敗秦於令狐,白乙丙力戰得脫,公子雍則死於亂軍之中。先蔑、士會見狀,不敢歸晉,不得已隨同秦師回國。
先蔑出使秦國的時候,荀林父曾勸阻他,說:“夫人和太子還在,反而到外邊去求國君,這一定是行不通的,您不如藉口生病而辭謝不去,免得禍患降臨到您身上。在一起做官就是僚,我曾經和您同僚,豈敢不盡我的心意呢?”先蔑沒有聽從。等到先蔑逃亡出國,荀林父把他的妻子兒子以及器用財貨全部送到秦國,說:“這是為了同僚的緣故。”
慘遭戰敗
晉成公七年(前600年),晉與楚爭強,荀林父率師伐陳,以救鄭,擊敗楚師。晉景公三年(前597年),荀林父任中軍元帥,執掌國政,率師與楚進行邲(今河南滎陽東北)之戰(參見邲之戰)。
荀林父統兵救鄭,到黃河,了解到鄭已和楚講和,就想回師,而將領之間意見分歧,中軍副將先彀擅自率所部渡河,荀林父不得已,被迫令全軍盡渡,駐軍於邲。楚軍由楚莊王親自統領,莊王起初無意與晉決戰,後採納伍參的意見,認為荀林父新主中軍,號令不行,他的副手先彀剛愎自用,不肯聽從命令,他們的三個統帥,也各自主張,因此打起仗來,晉軍必敗。莊王遂命孫叔敖揮軍北上,與晉軍對抗。
此時,晉將魏錡求為大夫未成,趙旃求為卿未成,便擅自向楚軍請戰,希望能造成晉軍的失敗。此時楚軍中亦有和戰的爭議,楚莊王採納伍參的意見,決定與晉軍決戰,並採納令尹孫叔敖的意見突襲晉軍。
孫叔敖見晉軍來挑戰,決意先發制人,命左、中、右三軍及楚王親兵布好陣式,掩襲晉軍。荀林父不意楚大軍迫近,驚慌失措,下令晉軍渡河後退,擊鼓宣布說:“先渡河者有賞。”中軍、下軍爭相上船,先上船的用力亂砍攀登船舷的人的手指,船中的斷指多得可以用手捧起來。晉上軍因主帥士會早有準備,在敖山設伏應敵,得以不敗。楚莊王由此開始建立了自己的霸權,被列為春秋五霸之一。
重任原職
荀林父在這次大戰中指揮不力,未能說服主要將領服從他的意圖,也未能約束全軍統一行動,失敗慘重。晉師回國之後,荀林父請求處自己以死罪。晉景公打算答應,士貞子(即士渥濁)勸諫說:“不行,城濮那一仗,晉軍三天吃著楚軍留下的糧食,文公還面有憂色,左右問有了喜事為什麼還憂愁?文公說是因為楚國的子玉還在。等到楚國殺了子玉,文公才喜形於色,說:‘沒有人能再來害我了。’這是晉國的再次勝利,也是楚國的再次失敗;楚國由此兩世不能強盛。現在上天懲戒晉國,如果殺了林父以增加楚國的勝利,恐怕會使我們不能強盛吧!林父事奉國君,進,想著竭盡忠誠;退,想著彌補過錯,是國家的干城,怎么能殺他呢?他的戰敗,如同日月之蝕,哪裡會損害它的光明!”景公於是讓荀林父官復原位。此為“困獸猶鬥”之典故。
連續獲勝
其後荀林父接受教訓,注意使全軍貫徹一個明確的軍事意圖,統一指揮,統一行動。他又指揮了一次示威性的伐鄭的戰役,目的是威脅鄭國脫離與楚國的同盟,與晉國重修舊好,晉國的軍隊很出色地完成了這個任務。
晉景公六年(前594年),荀林父率師攻滅赤狄的潞氏(今山西潞城東北),為此,晉景公賞賜他“狄臣千家”(狄人奴隸一千家)。並賞士貞子晉國的瓜衍之地,並且對他說:“寡人得到狄國的土地是你的功勞,要不是你的勸諫,寡人已失去荀林父了。”這也是荀林父在政治軍事生涯中建立的最後一次功績。
不久,年邁的荀林父自覺部分彌補了邲之戰的過失後,宣布退出晉國政壇。其子荀庚繼立,是為中行宣子。