Bayern Munich made it seven Bundesliga titles in a row as they saw off Eintracht Frankfurt 5-1 at the Allianz Arena to take the crown by two points from Borussia Dortmund, who won 2-0 at Borussia Monchengladbach.
Veterans Franck Ribery and Arjen Robben, on as second-half substitutes, both scored in their final Bayern appearances as Niko Kovac’s side recovered from the shock of a Frankfurt equaliser to wrap up the title in emphatic fashion.
Bayern needed only four minutes to take the lead, with Robert Lewandowski and Thomas Muller combining to set up Kingsley Coman to fire beyond Kevin Trapp.
With Dortmund’s score at Gladbach standing at 0-0, Bayern put further pressure on the Frankfurt goal, with Lewandowski having an effort blocked.
Bayern’s afternoon almost got even better when Gladbach were within a whisker of going in front against BVB, Ibrahima Traore hitting the bar, and back at the Allianz Arena, Lewandowski came close to setting up another for Coman.
The defending champions also thought they had doubled their advantage when Serge Gnabry struck, only for a VAR review to find Lewandowski had been offside in the build-up to the goal.
But they continued to sweep forward, Frankfurt’s Jonathan de Guzman diverting the ball against his own crossbar and Trapp saving well from Muller.
At Gladbach, Marco Reus curled a free kick over for Dortmund — but with moments to go until half-time, he set up the goal that kept their title chances flickering, a cross falling to Jadon Sancho, who steered the ball high into the net.
Half-time came with both contenders in front, but there was drama in the opening stages of the second half in Munich.
Frankfurt substitute Sebastien Haller equalised in the early stages after the ball had come back off the bar in a scramble, meaning Bayern and Dortmund were temporarily level on points with Bayern substantially ahead on goal difference.
Within moments, Bayern were in front again, David Alaba on target after Trapp had parried from Muller, Dortmund then doubling their advantage as Sancho and Christian Pulisic set up Reus.
But after 58 minutes, the title was all but decided when Bayern struck again, Renato Sanches making space and firing through Trapp from an angle to spark huge celebrations.
Ribery, on his way in the summer, ended his long and distinguished Bayern career when he replaced Coman, and Robben followed suit as he came on for Gnabry.
The Frenchman was soon on the scoresheet, jinking away from a couple of defenders and dinking the ball past the demoralised Trapp.
Not to be upstaged, Robben had the final word, tapping in after a low ball into the area had eluded the ragged Frankfurt defence.