晋成公早年在
东周作人质。公元前607年,晋灵公遇害,晋成公回到晋国继位。晋成公即位后的第一件事就是要为大忠臣
赵盾平反昭雪,昭告天下弑晋灵公的是
赵穿不是赵盾。随后恢复公族官职,并馀子、公行官职,以卿士的嫡子、庶子担任。后与
郑国结盟,多次派兵援救郑国;联合白狄打败
秦国,俘虏秦国将领。晋成公在位期间,积极参与
诸侯争霸。公元前600年,他在扈邑会见各国诸侯,共同商讨攻打不听从
晋国的国家。
公元前600年,晋成公在扈邑会见各国诸侯。同年九月,晋成公在扈邑去世,
谥号成公。死后由其子公子据继位,是为
晋景公。
晋灵公十四年(
鲁宣公二年,公元前607年)九月二十六日,将军
赵穿杀死晋灵公,赵穿堂兄
赵盾派赵穿到东周迎接黑臀回
晋国,拥立他继任国君,是为晋成公。同年十月初三日,晋成公到武宫庙祭拜祖先。
当初,骊姬之乱时,诸公子们逃离
晋国,从此晋国没有公族这个官职。等到晋成公继位后,就把官职授给卿士的
嫡长子,并且给他们土田,让他们担任公族大夫。还把官职授给卿的其他儿子,也让他们担任馀子的官职,让他们的庶子担任公行的官职。晋国从此开始设有公族、馀子、公行三种官职。赵盾请求让
赵括担任公族大夫,说:“他是君姬氏的爱子。如果没有君姬氏,那么下臣就是狄人。”晋成公同意。同年冬天,
赵盾掌管旄车之族,让
赵括统率他的旧族,担任公族大夫。
晋成公元年(
鲁宣公三年,公元前606年)春天,晋成公因
郑国背叛
晋国,于是派兵攻打郑国。
晋绥军到达郔地,郑国与晋国讲和,晋国大夫
士会到郑国缔结盟约。同年夏天,楚国由于郑国倾向晋国的缘故,于是出兵入侵郑国。
晋成公三年(鲁宣公五年,公元前604年),当时郑国国君
郑襄公刚刚即位,郑国开始依附晋国而背弃楚国。楚国国君
楚庄王很生气,便出兵攻打郑国,并与
陈国讲和。晋国将领
荀林父(中行桓子)率军前往援救郑国,而攻打陈国。
晋成公四年(
鲁宣公六年,公元前603年)春天,晋成公联合
卫国入侵陈国,晋军主帅为
赵盾、卫军主帅为孙免。同年秋天,赤狄进攻
晋国,包围怀地和
太和县。晋成公打算反攻。荀林父说:“让他危害他自己的百姓,以使他
段延庆,到时候大概就可以歼灭。《
周书》说:‘歼灭大国
商朝’,说的就是这一类的事情。”
晋成公五年(鲁宣公七年,公元前602年),赤狄入侵晋国,割取向阴的谷子。同年,
郑国与晋国讲和,这是出于公子宋的谋划,所以公子宋作为郑君的赞助行礼者来参加盟会。同年冬天,在黑壤结盟。周卿士王叔桓公到会监临,以促成不和睦的诸侯重建邦交。晋成公继位时,
鲁宣公没有前来朝见,亦不派大夫前来访问,
晋国人因此在会上拘留他。在黄父结盟,鲁宣公没有参加,由于向晋国赠送一些财物才得以释放回国。
晋成公六年(鲁宣公八年,公元前601年)春天,晋国与白狄讲和。同年夏天,晋国联合白狄攻打
秦国,俘虏秦国将军赤。并且抓获秦国一名间谍,将他在绛城的街市上处死。六天之后,这名间谍又奇迹般的复活过来。不久,晋国大夫
胥克因
食物中毒得病,于是由
郤缺主持国政。同年秋天,晋成公废黜胥克,任命
赵朔为下军的副帅。同年,
赵盾去世。
晋成公七年(
鲁宣公九年,公元前600年)九月,晋成公与
楚庄王争夺
霸权,和
宋文公、
姬郑、
郑襄公、曹文公在扈邑会见,攻打不听从
东晋的国家。
陈国国君
陈灵公因畏惧楚国,所以没有参加会见。晋成公派
荀林父率领诸侯的军队攻打陈国,继而救援
郑国,诸侯联军与楚国交战,打败
湘军。同年九月辛酉日,晋成公在扈邑去世,其子公子据继位,是为
晋景公。
晋成公在位时期,对内恢复公族官职,并设置馀子、公行官职,将这些官职委任给卿士们的嫡子、庶子担任。对外与郑国结盟,多次派兵援救郑国;联合白狄攻打
秦国,击败
秦军,俘虏秦国将领。
晋成公六年(
鲁宣公八年,公元前601年),
晋国联合白狄攻打秦国,抓获秦国一名间谍,将他在绛城的街市上处死。六天之后,这名间谍又奇迹般的复活过来。
司马迁:“灵公既弑,其後成、景致严,至厉大刻,大夫惧诛,祸作。”