周朝的军制是天子六军,诸侯大国三军,次等诸侯国二军,小国则只有一军。曲沃庄伯时期获周厘王命为侯,拥有一军。曲沃代晋之后的献公时期,开始作二军,并以太子申生将下军,自己将上军。文公在位之后,于被庐作上、中、下三军,此为三军制之始。之后又于清原新增新上军和新下军,使军制扩充为五军。晋襄公时,因一批老臣相继去世,便又恢复为三军制。晋厉公时又扩充为六军,以提拔新人。悼公在位后,再度恢复为三军,至此直接春秋末年,晋国一直保持三军制不变。三军的长官是由执政担任,每一军都有一将一佐。其中以中军将为最高军事长官,同时也是执政正卿。 在文公以前,军队的最高统帅是国君,每逢战事,国君多会亲自迎战,为国君驾车的人立于战车之左,称之为“御戎”;国君本人居中,主要指挥军队;在国君右边,还会有一名“戎右”执长兵器打击敌方战车。从城濮之战后,国君一般不会亲自出战了,而是由正卿取而代之。
晋国的军队又分车兵和徙(步)兵两种。车战是春秋时期主要的作战方式,晋国的车兵皆为甲士。甲士,也称为士。他们都是国人组成,国人都居于国都周围,是下层贵族的一种。士的职责就是“执干戈以卫社稷”,由于是子孙相继的世袭军人,所以他们不会直接参与农作。士在出征时需要自带装备和补给,并会用数名家丁做后勤。
车兵虽为晋的主要武装力量,但由于甲车耗费甚大,而甲士人数有限,为了扩展军力,不得不征集庶人入伍,称之为卒伍。庶人本是自由耕种的农民,他们农时要自己耕作,闲时则应征入伍,作为徒兵或做杂役。
由于位处北方,为了与戎狄对抗,晋于献公时一度设置步兵,当初仅左、右二行。文公新加中行,形成中、右、左三行,并以荀林父为中行主将。但三行存在时间甚短,三年后,就将三行改制为上、下两新军。之后,晋便再也没有设置过步兵了。