Mainz win away at Bayern Munich
Hungarian Adam Szalai turned beautifully and fired in the winner with 13 minutes to play to lift Mainz to 18 points, three ahead of Borussia Dortmund, 3-1 winners at St Pauli thanks to a Kevin Grosskreutz brace.
Mainz's run in their second straight season in the Bundesliga has drawn praise from all quarters, even from Bayern coach Louis van Gaal.
"Mainz can win the title," a disappointed Van Gaal told reporters. "Kaiserslautern did it a few years back (as a newly promoted team in 1998). Why not Mainz?"
Their second league defeat left Bayern, who were lacking the injured Arjen Robben and Franck Ribery as well as their creativity, in eighth place 10 points behind the leaders.
"I need these two days off now to really understand what is happening," said Mainz coach Thomas Tuchel. "To improve on five wins with such a victory is just amazing."
Spaniard Raul scored his first goal of the season three minutes from time to help Schalke 04 rescue a 2-2 draw against Borussia Moenchengladbach, who squandered a two-goal lead, and move off the bottom into 16th spot on four points.
Dutchman Klaas-Jan Huntelaar had scored Schalke's first, and his third goal of the season, just after the break.
Hoffenheim are third on 11 points following their 1-1 draw at Cologne on Friday, with Bayer Leverkusen in fourth on goal difference after an impressive 4-1 win at VfB Stuttgart, who had Mauro Camoranesi sent off with a red card in the 31st minute.
Champions League participants Werder Bremen squandered a 2-0 lead but an 85th-minute Hugo Almeida goal, his second of the game, gave them a 3-2 win in the northern derby against Hamburg SV and lifted them to 11th place on seven points.
Mainz took the lead against their lacklustre hosts when Sami Allagui was left unmarked in the area to flick in a Lewis Holtby cross with his heel after 15 minutes.
The fearless visitors kept pressing deep in Bayern's half and disrupted their possession while the hosts, who were also missing leftback Diego Contento, never really threatened for most of the first half.
The fans had to wait 43 minutes before striker Miroslav Klose rattled the post with a powerful header.
It took another two minutes for Bayern to equalise when defender Bo Svensson headed back a Mark van Bommel cross. Keeper Christian Wetklo was out of position and, despite a sprint towards the ball, saw it slowly roll into the net.
Bayern failed to build on their gift, allowing far too much space to the visitors who grabbed the deserved winner through Szalai. In the final minutes Wetklo denied Daniel van Buyten, parrying his shot from point-blank range.