Bayern Munich’s hopes of a seventh successive Bundesliga title suffered a blow as Bayer Leverkusen came from a goal down to beat the champions 3-1.
Niko Kovac’s side are now seven points behind leaders Borussia Dortmund who drew 1-1 at Eintracht Frankfurt.
Leon Goretzka’s header gave Bayern the lead before Leon Bailey equalised with a brilliant 20-yard free-kick.
Leverkusen’s Kevin Volland then fired in following a sweeping move and Lucas Alario’s tap-in sealed the fightback.
The Argentine substitute was initially flagged offside, but the decision was overruled by VAR.
The defeat ended Bayern’s run of seven consecutive league wins.
In Frankfurt, Dortmund took the lead in the 22nd minute through Germany midfielder Marco Reus, who struck his low effort past goalkeeper Kevin Trapp.
Reus also hit the woodwork with another effort, moments later.
Serbia striker Luka Jovic levelled for the home side 14 minutes later with a close-range strike.
Dortmund now have 49 points while Bayern remain on 42. Third-placed Borussia Monchengladbach could draw level on points with Bayern if they defeat Schalke later on Saturday.