Jamal Musiala's 89th-minute goal propelled Bayern Munich to a dramatic 2-1 victory over Cologne on the final day of the Bundesliga season, snatching the trophy from Dortmund's grasp.
Dortmund entered Saturday's final game of the season in first place, but a 2-2 draw against Mainz 05 allowed Bayern to overtake them in the closest Bundesliga race in years.
Bayern concluded with 71 points, surpassing Dortmund by a goal differential.
Union Berlin qualified for the Champions League with a late goal from Rani Khedira against Werder Bremen. Union finished fourth, clear of Freiburg, who fell to Eintracht Frankfurt by a score of 2-1, and behind third-place RB Leipzig.
Schalke was relegated following a 4-2 defeat at Leipzig, and VFB Stuttgart will face the team that finishes third in the second division in the relegation/promotion playoff. Hertha Berlin had previously been demoted.
In the season's final game, Bayern were celebrating an unexpected title victory, while Dortmund's hopes for their first league trophy since 2012 were dashed when they trailed Mainz 2-0 early on before battling back for a 2-2 draw.
Sébastien Haller saved a first-half penalty after Andreas Hanche-Olsen stunned the home fans by scoring Mainz's first goal in the 15th minute. Dortmund had begun the game in the lead, but Mainz's goal stunned the home crowd.
Karim Onisiwo scored Mainz's second goal with a deflection in the 24th minute, and the visitors appeared capable of scoring more goals against the error-prone Dortmund defense. Mainz had nothing at risk but its honor.
Raphal Guerreiro scored for Dortmund in the 69th minute, but by the time Niklas Süle tied the game in the sixth minute of stoppage time, it was far too late for the "black and yellows."
Bayern's title victory salvages some silverware from a disappointing season for the club, but shortly after the final whistle, several major German media outlets reported that club CEO Oliver Kahn, who was not in Cologne, and sports director Hasan Salihamdizic would depart the club.
The shocking dismissal of Julian Nagelsmann in late March and the hiring of Thomas Tuchel were not followed by success, as the team was eliminated from the German Cup and the quarterfinals of the Champions League. The board of Bayern is scheduled to convene on May 30.
The Bavarians desperately required a victory, and Kingsley Coman quickly calmed their nerves by putting them in front with a beautifully curled shot into the top corner.
With Dortmund trailing in the first half, the Bavarians knew they were in the lead and controlled the first half without taking unnecessary risks.
Leroy Sane scored just before halftime, but his goal was disallowed following a VAR review for interference.
Bayern club executives, including Salihamidzic, anxiously checked their mobile phones for the score in Dortmund as Dejan Ljubicic converted a penalty for Cologne in the 80th minute.
Sane believed he had wasted the opportunity to give his team the championship when he failed to beat the Cologne goalkeeper in the 88th minute, but Musiala did it precisely a minute later by curling a low shot into the far post in the dramatic season finale.