德甲联赛采取双循环主客场制比赛,总共18支参赛球队根据赛季前统一制定的固定比赛计划相互对赛两次,其中主场、客场各一次。上下半季的赛程并不相同,而双方球队亦不会在同一半季中对赛两次。赛季中的全部34轮比赛通常由8月至次年5月或6月进行。若赛季结束当年会举行欧锦赛或世界杯,该个赛季或会提前至4月结束。直至1980年代中期,德甲赛季在冬季都拥有一个短暂的间歇期。1964年12月31日由纽伦堡主场1:1战平斯图加特的比赛成为唯一一场在除夕进行的赛事。持续时间较长的冬歇期于1986-87赛季首次推出,由12月初至次年2月下旬。目前的冬歇期为期三周,通常在12月或1月。传统上每个轮次都应在周六下午15:30开赛,但近年来也增设了周五及周日的比赛。此外,若受到球队欧洲赛事或国家队赛事密集的影响,部分轮次也会安排在周二及周三进行。
每个赛季的赛程表都会进行调整,以确保赛事的系统性及球队相互对赛的顺序。赛程表主要借助电脑程序依照相关的重要参数,例如其他重要赛事的赛程而制定,并根据国际足联及欧洲足联的框架时间表确定比赛日期。此外,借助中央安全资讯系统(Zentrale Informationsstelle für Sicherheit, ZIS)可排除重叠的比赛机会。因此,例如像多特蒙德和盖尔森基兴两座相邻的城市同时进行主场比赛是可以避免的。
在双循环主客场制比赛中最终名列第一的球队,可以获得为期一年的“德国足球冠军”称号;排名最末的两支球队需要降入德国足球乙级联赛,作为替换,在德乙排名前两位的球队可以直接升入德甲。此外,自2008-09赛季起,德甲排名倒数第三的球队需要与德乙排名第三的球队进行附加赛,胜者得以在留在德甲。除了德国冠军队和降级队,德甲联赛还将依照名次分配参与欧洲俱乐部赛事的球队。这主要通过欧洲足联积分排名,以确定各成员国可以获得的欧洲冠军联赛、欧洲联赛、国际托托杯和欧洲优胜者杯的参赛席位,以及在各赛事中的参赛阶段。成员国的积分排名越高,可入围参与欧洲赛事的名额便越多。根据德国在欧洲足联积分排名的名次,德甲的冠军、亚军和季军均直接入围欧洲冠军联赛小组赛,殿军也可参加欧洲冠军联赛附加赛。德甲的第五、第六名以及德国足协杯冠军则可获得参加欧洲联赛的资格。若有球队入围德国足协杯决赛并已在德甲联赛中获得欧洲冠军联赛或欧洲联赛资格,则德甲第七名也可参加欧洲联赛。此外,其它球队也可通过欧洲足联公平竞赛排名参与欧洲联赛的入围竞争,美因茨05和柏林赫塔便分别于2005年和2008年借此排名入围欧洲联盟杯。
每场比赛后,胜方及负方球队可分别获得3分(自1995-96赛季起实施,此前为2分制)和0分,平局则各得1分,球队在一个赛季中每场比赛获得的积分将被相加,以确定其联赛排名。积分相同的球队将按净胜球差排列名次,净胜球差相同则按入球数计。若入球数仍然相同,则考虑相关球队的对赛成绩、对赛净胜球差及对赛客场入球数。如果以上方法都无法分出有关球队的排名,最后将于中立场地进行一场附加赛决出胜负,但在德甲历史上迄今为止从未出现过此情况。
德甲的竞赛模式自开办以来几乎未发生改变。出现波动的也只是参赛队伍的数量(16、18、20)和降级名额的数量(2至4),有时也会通过举办保级附加赛来确定升降级的名额。直至1969年,积分相同的球队不是计算净胜球差,而是计算净胜球商数。三分制自1995-96赛季起实施,在此之前,球队胜、平可分别获得的分值为2分和1分。同时,平、负也会被计入“负分”的积分系统。