Paco Alcacer scored twice late in the game as Borussia Dortmund beat Wolfsburg to go back to the top of the Bundesliga.
With nine games remaining, two points separate the pair – and they face each other next week at the Allianz Arena.
Alcacer scored from a free-kick in the 90th minute, before converting Jadon Sancho’s ball from the right four minutes into stoppage time.
Bayern dropped points at Freiburg, coming from a goal down to draw 1-1.
Lucas Holer fired in for the home side after three minutes before Poland striker Robert Lewandowski equalised with a brilliant volley in the 22nd minute. It was his 199th goal in the German top flight.
“It is very frustrating because we had done so well to catch up with Dortmund, and now we have to start again,” said Bayern coach Niko Kovac.
“I assume my players know what is at stake next weekend. We have to win now.”
A pigeon that had camped in the Dortmund box and stubbornly refusing to leave was by far the most interesting incident until the break.
Dortmund picked up the pace after the break but neither Jadon Sancho nor Raphael Guerreiro could beat Wolfsburg keeper Koen Casteels until Spaniard Alcacer struck twice to take his tally to 16 this season and put Dortmund back on top.
Champions Bayern, who had won 13 of their previous 14 league games, cancelled out Lucas Hoeler’s early opener with Robert Lewandowski’s 199th Bundesliga goal in the 22nd.
But the Poland striker’s sensational volley was not enough and he wasted a bagful of golden scoring chances in the second half, including a point-blank header, and even hit the woodwork in stoppage time.