Im Mittelpunkt der Saison stand der Zweikampf um den Meistertitel zwischen Bayern München und Bayer 04 Leverkusen. Anders als in der Vorsaison, als die Bayern am Saisonende einen 15-Punkte-Vorsprung herausgearbeitet hatten, blieb die Meisterfrage bis zum Saisonende spannend und gipfelte in einem Fernduell am letzten Spieltag.
Bayer Leverkusen übernahm am 30. Spieltag durch ein 4:1 gegen Arminia Bielefeld die Tabellenführung, nachdem sich der FC Bayern eine überraschende 1:2-Niederlage im Derby gegen den 1860 München erlaubt hatte. Beide Meisterschaftsaspiranten gewannen ihre folgenden Spiele (Leverkusen 3:1 in Bremen, 2:0 beim HSV und 4:1 gegen Frankfurt, Bayern 1:0 in Dortmund, 4:1 gegen Rostock und 3:0 in Bielefeld), sodass die Entscheidung am letzten Spieltag fiel. Leverkusen ging mit 73 Punkten und einer Tordifferenz von +40 in das Auswärtsspiel bei der SpVgg Unterhaching. Die Bayern hatten vor dem letzten Spieltag gegen Werder drei Punkte weniger, jedoch mit +43 eine bessere Tordifferenz. Zum Meistertitel reichte Leverkusen also ein Unentschieden in Unterhaching oder eine Punktmitnahme der Bremer aus München.
Leverkusen geriet durch ein Eigentor von Michael Ballack nach 20 Minuten auf die Verliererstraße, während München eine 3:1-Halbzeitführung herausspielte. Nach 72 Minuten versetzte der Unterhachinger Markus Oberleitner mit dem 2:0 Bayer 04 den letzten Stoß, während in München keine weiteren Tore fielen. Bayern München war somit am Saisonende punktgleich mit Leverkusen (73 Punkte), hatte aber eine um sieben Treffer bessere Tordifferenz und gewann seine 16. Meisterschaft. Das Original der Meisterschale befand sich im Sportpark in Unterhaching beim Spiel des Tabellenführers des 33. Spieltags. Im Olympiastadion in München konnte Bayern München nach Spielende somit lediglich eine Kopie der Schale überreicht werden.
Bayer Leverkusen wurde wie im Vorjahr, zum dritten Mal in vier Jahren Zweiter. Schon in der Saison 1996/97 war Bayer Zweiter geworden, auch damals hinter dem FC Bayern München. Mit 73 Punkten war Bayer Leverkusen der stärkste Tabellenzweite seit Einführung der Drei-Punkte-Regel.
Aufsteiger Unterhaching schaffte den Klassenerhalt vergleichsweise sicher, der Hamburger SV und 1860 München belegten die Plätze drei und vier und erreichten die Qualifikationsspiele für die Champions League. Die zu Beginn als stärker eingestuften Mannschaften aus Dortmund und Schalke schafften nur relativ knapp den Klassenerhalt. Udo Lattek und Co-Trainer Sammer retteten den BVB durch ein 2:1 beim VfB Stuttgart.
In der Abstiegszone fielen zwei Entscheidungen vorzeitig: Der MSV Duisburg stand nach einem 1:3 in Rostock am 31. Spieltag als Absteiger fest, Arminia Bielefeld nach dem 33. Spieltag nach dem 0:3 gegen den FC Bayern. Rostock, Frankfurt und der SSV Ulm 1846 spielten den letzten Absteiger unter sich aus; Hansa erreichte mit einem 2:0 beim FC Schalke 04 seinen ersten Auswärtssieg der Saison, und im direkten Duell gegen Ulm behielt Frankfurt mit 2:1 die Oberhand.
In der Rückschau dieser Saison findet insbesondere das Spiel Hansa Rostock gegen SSV Ulm (2:1) Beachtung, in dem der SSV Ulm insgesamt 4 Platzverweise erhielt und auch der Ulmer Trainer auf die Tribüne musste.
Die Vereine der Bundesliga 1999/2000:
Abschlusstabelle:
Torschützen:
Meistermannschaft: