Bayern Munich clinched its 20th German title after drawing 1-1 at FC Kaiserslautern on Saturday.
Second-place Hamburger SV lost 4-2 to Hertha Berlin, leaving it six points behind with one round to play.
At halftime in both games it looked like the title race would go down to the final round -- Bayern trailed 1-0 on Halil Altintop's 19th goal of the season for Kaiserslautern, while Hamburg led 2-1.
But Bayern's Andreas Ottl scored his first Bundesliga goal in the 68th minute to level, while Berlin defender Alexander Madlung scored with a header in the 55th to pave the way for Hamburg's defeat.
"It was very tense today," Bayern coach Felix Magath said. "But as you can see, we are so happy at the title. We were dominant the whole season."
Bayern's players formed a circle on the field and sang to celebrate its 19th Bundesliga title and sixth in eight years. It also won a German title before the Bundesliga was formed in the 1960s.
But the celebration was subdued.
"About 90 percent of us are thinking ahead to the World Cup," Bayern goalkeeper Oliver Kahn said. "We will celebrate tonight though."
The traditional soaking of players with beer was forbidden because Kaiserslautern was afraid the 51,000 fans at Fritz-Walther stadium could become violent.
Bayern is the first German club to win the domestic double -- the league title and German Cup -- in consecutive years, while midfielder Mehmet Scholl is the first player to win eight Bundesliga titles.
Bayern's recent poor form -- during which a 10-point lead was cut to four at one stage -- continued against the relegation-threatened Kaiserslautern.
Haliltop outpaced a defender in the 26th minute to score with a low shot, while Kaiserslautern almost led 2-0 when a shot hit the crossbar.
By the 18th minute, Hamburg led 2-1 on goals by Pjotr Trochowski and Benny Lauth and its fans amongst the 74,000 at the Olympian stadium cheered as the scoreboard showed Altintop's goal.
"It didn't look good at halftime," Kahn said. "We talked to each other and said it's tough out there -- Kaiserslautern is fighting for survival -- so let us at least get a goal. And that's what we did."
Kaiserslautern plays Wolfsburg, with the loser being relegated. Berlin kept its hopes alive of catching Bayer Leverkusen for the league's final UEFA Cup berth.