Mainz came from behind through second-half goals from Ludovic Ajorque, Leandro Barreiro and Aaron Martin within 14 minutes to upset leaders Bayern Munich 3-1, while
The Bavarians took the reins from the get-go and thought they had broken the deadlock, but Sadio Mane's goal was ruled offside with 15 minutes gone.
Bayern dominated possession and eventually opened the scoring at the half-hour mark when Joao Cancelo's whipped cross into the box allowed Mane to head home from close range.
The German giants should have extended their lead, but neither Jamal Musiala nor Cancelo was able to finish off presentable opportunities.
Mainz turned up after the restart and pressed Bayern onto the back foot. Bayern ceased its offensive actions whereas Mainz took over and restored parity in the 65th minute when Bayern goalkeeper Yann Sommer blocked Lee Jae-sung's shot into the path of Ajorque, who nodded home from close range.
Mainz gained momentum and turned the tides after Barreiro tapped home Karim Onisiwo's cutback pass in the 73rd minute.
Things went from bad to worse for the German record champions as Mainz weren't done with the scoring and made it three through Martin, who latched onto Andreas Hanche-Olsen's assist.
"We lack the energy to deal with setbacks. Now we look like a team that has already played 80 games this season, we look drained. The points go away like sand through your hands," said Bayern coach Thomas Tuchel.
"It was an extremely difficult first half for us. The second half was a bit better. After 1-1, you felt the faith, energy and the momentum. Until then it didn't look like we would come back. I'm proud of my team," said Mainz coach Bo Svensson.
Elsewhere, Borussia Dortmund capitalized on Bayern's defeat and moved atop the standings with a one-point advantage after cruising past hapless Eintracht Frankfurt 4-0.
Wolfsburg crushed relegation-threatened Bochum 5-1 thanks to Mattias Svanberg's brace. Marvin Ducksch's hat-trick secured Werder Bremen a 4-2 victory over bottom side Hertha Berlin, while Cologne beat struggling Hoffenheim 3-1.
Stuttgart clinched a 1-1 draw with Augsburg to snatch a vital point in the relegation battle on Friday.