Bayern Munich missed the chance to clinch the Bundesliga title when they lost at relegation-threatened Mainz 2-1 on Saturday.
First-half goals from Jonathan Burkardt and Robin Quaison put Bayern’s title celebrations on hold and lifted Mainz five points clear of the relegation zone after a remarkable turnaround in the second half of the season.
Robert Lewandowski returned from a month out with a knee injury to score for Bayern in the fourth minute of injury time and take his season tally to 36, but it was not enough for the eight-time defending champions.
"That was too little from us in the first half, you can't win games like that, in terms of body language and our build up," said Bayern captain Manuel Neuer, who was at fault for the opening goal.
"We created too few chances and were punished for our own mistakes.
"We weren't surprised by Mainz, who have been playing well and are fighting to stay up."
Bayern could still win the title this weekend, depending on how second-placed Leipzig fare against Stuttgart on Sunday.
A Leipzig defeat would hand Bayern the title with three games to spare, but anything else means the Bavarians will have to wait. Bayern host Borussia Monchengladbach next weekend in the next opportunity to win the league.
Germany Under-21 striker Burkardt opened the scoring in the third minute when Manuel Neuer was deceived by his speculative shot from the edge of the area.
The Bayern goalkeeper reacted well to deny Mainz a second goal minutes later, then again in the 16th, a minute after Lewandowski went close for the league leaders.
But Quaison headed Mainz’s second goal in the 37th when he beat Muller and David Alaba to meet Phillipp Mwene’s free kick.
Bayern manager Hansi Flick made three changes at the break, Eric Maxim Choupo-Moting and Jamal Musiala replacing the ineffective Leroy Sane and Kingsley Coman, while Tanguy Nianzou came on for Leon Goretzka, who was in danger of a second booking.
Mainz had also been 2-0 up at half-time against Bayern at the Allianz Arena in January until the hosts roared back to win 5-2 when Lewandowski scored twice.
However, this time Mainz held their nerve and Lewandowski's goal four minutes into added time was Bayern's only consolation.
Mainz are a different prospect since Bo Svensson took over as manager following that heavy defeat in January. The are unbeaten in seven games with five wins in that run.
In Wolfsburg, Erling Braut Haaland netted twice as Borussia Dortmund boosted their hopes of qualifying for the Champions League next season with a 2-0 away win.
Haaland sprinted clear of the defence and fired home from a tight angle with just 12 minutes gone.
Dortmund played with 10 men for the last 31 minutes after 17-year-old England midfielder Jude Bellingham was sent off for a second yellow card.
However, Dortmund doubled their lead when Mahmoud Dahoud won the ball on the edge of his own penalty area and his pass found Haaland.
The 20-year-old raced clear and slotted past Wolfsburg goalkeeper Koen Casteels for his 37th goal in 38 games this season in all competitions.
With three games left, fifth-placed Dortmund are one point from the Champions League places, but have their work cut out with games against Leipzig, Mainz and Bayer Leverkusen to come.
Finland striker Joel Pohjanpalo struck a hat-trick as Union Berlin romped to a 3-1 home win against Werder Bremen to move up to seventh and a point from the European places.