Mainz added some excitement to the Bundesliga season by becoming the first team to win at the Allianz Arena this season, enabling second-placed Borussia Dortmund to narrow the gap on Bayern Munich to five points with a win at Darmstadt.
Jairo Samperio and Jhon Cordoba were both on target as Martin Schmidt's Mainz side picked up an eye-catching 2-1 win in Munich which boosts their own hopes of qualifying for Europe next season.
Fifth coming into the game, Mainz are now serious candidates for a Europa League berth while they are level on points with fourth-placed Borussia Monchengladbach, raising the prospect of Champions League football arriving for the first time at the Coface Arena next season.
Arjen Robben scored the consolation for Bayern, who were beaten for only the second time all season.
Dortmund took full advantage with Adrian Ramos and Erik Durm on target as an under-strength side eased past Darmstadt 2-0.
They play host to Bayern on Saturday with only five points now between the top two with 10 games of the season to go.
Hertha Berlin kept up their bid for Champions League football next season with a 2-0 win over struggling Eintracht Frankfurt, thanks to goals from Mitchell Weiser and Salomon Kalou, while Borussia Monchengladbach kept up the pressure with a 4-0 win over Stuttgart.
Thorgan Hazard, Raffael, Patrick Herrmann and a Kevin Grosskreutz own goal helped Andre Schubert's men pick up all three points.
Elsewhere, Schalke got back to winning ways with a 3-2 triumph over Hamburg enabling them to move three points clear of Bayer Leverkusen, who were beaten 4-1 at home by Werder Bremen.
Claudio Pizarro - the league's most prolific goalscorer in 2016 with Bayern's Robert Lewandowski - scored a hat-trick to help Bremen move out of the bottom three and dent Leverkusen's hopes of qualifying for Europe next season.
Hoffenheim also picked up a morale-boosting 2-1 win over Augsburg and are now breathing down the neck of Frankfurt in the relegation play-off position.