晋国大臣荀林父的祖先本是晋国原氏一族,其爷爷原息是晋献公时期有名的大夫,曾辅佐了晋武公、晋献公两代国君,其中假途灭虢的计策就是原息献计给晋献公的。晋武公灭荀国后,将荀地赐给原息,所以原息后人开始以荀为氏,原息又被称为荀息。
荀息的儿子荀逝敖也担任晋国大夫,荀逝敖有三个儿子,其中大儿子便是荀林父,因荀林父在晋文公时期曾担任步兵中行将,所以其后代以中行为氏,是中行氏的始祖;小儿子名叫荀首,因后来被封在智邑,所以其后代以智为氏,是智氏的始祖。
荀林父作为官二代,在晋文公时期便担任晋文公的驾车,后来晋文公为防御赤狄,特别设立了三个步兵军队,荀林父开始担任中行步兵的主将。
等到晋襄公去世的时候,此时荀林父已经开始担任下军将,身居六卿。而晋国正卿赵盾打算立晋文公之子公子雍为新的国君,此时公子雍正在秦国做人质,赵盾便让士会与先蔑二人去秦国迎回公子雍。
荀林父作为先蔑的朋友,劝阻先篾道,“襄公的太子和夫人还在晋国,您反而到他国去寻求国君,这有何道理?您最好以生病为借口推辞此事,不然祸患将会惹到您身上。”
先蔑没有听从,荀林父便又给他唱《诗经·大雅·板》中的章节:
“我虽异事,及尔同僚。我即尔谋,听我嚣嚣。我言维服,勿以为笑。先民有言,询于刍荛。”
意思是咱俩虽各司其职,但也与你同僚共事。我来和你一起商议,请你要听忠言不要嫌弃,但先篾还是没有听从。
结果先篾迎回公子雍时,赵盾已经立了国内的太子夷皋为君,并在令狐击败了护送公子雍的秦国军队。此战后,先蔑和士会逃亡秦国,荀林父便将二人的家族也护送到了秦国,后来先蔑在秦国终老,士会后来在赵盾的计策下又回到晋国。
等到晋成公时期,荀林父已经升任中军佐,在六卿之中仅次于主帅郤缺。到了晋景公三年,郤缺去世,荀林父担任中军将。然而荀林父刚刚上任就面临了一件棘手的事,此时正恰逢楚庄王北上围攻郑国,一场与楚国的战斗难以避免。
果然,晋景公命荀林父率领三军前去救援郑国。等到黄河边,听闻郑国已经投降楚国,并与楚国结盟。荀林父认为战机已经失去,便打算撤军,但性格傲慢的中军佐先毂本来就不服这个新的主帅,而且自己急于立战功,便坚持要痛击楚军,并擅作主张率自己的军队渡过黄河。
荀林父在韩厥的建议下也只好下令全军跟进渡过黄河。最终楚军大胜,晋军因没有提前好渡船撤退,导致军队撤退时惶恐溃散,损失惨重,这就是楚庄王称霸的邲之战。
回国后荀林父主动向晋景公请罪,要求处死自己。晋景公正打算答应,这时大夫士贞子说,“不可,当年城濮之战,晋文公赢了仍面露忧色,直到楚成王逼死了令尹子玉,文公才高兴起来。如今晋公您要杀了荀林父,岂不是让楚国高兴了吗?”于是晋景公没有处罚荀林父。
后来,荀林父率领军队击败赤狄的潞氏,帮助晋国扩大了地盘,弥补了当年邲之战犯下的错误。为此,晋景公赏赐他赤狄奴隶千人作为他的家臣,也证明了当年不杀荀林父是正确的。