- Exequiel Palacios (55' Pen, 73' Pen)
- Joshua Kimmich (22')
Bayern were nowhere to be seen at the start with the hosts unleashing a flurry of shots towards Yann Sommer's goal in the opening 15 minutes.
Their overall performance going into the one-week break for international matches and ahead of the April 1 Der Klassiker against leaders Borussia Dortmund was not what coach Julian Nagelsmann wanted to see.
"We did not deserve the first-half lead. We did not have the activity we had with the ball in the past weeks," said Nagelsmann.
"The penalties were correct. It all took too long for us today and we deserved to lose because were the worse team."
Bayern did, however, score against the run of play and with their first shot of the game when Joshua Kimmich's effort was deflected in after 22 minutes.
Things, however, took a turn for the worse for Bayern after the break with sloppy defending earning the hosts two penalties.
Palacios draw them level with a well-taken 55th minute spot kick and then earned another, this time for a foul by Dayot Upamecano.
The Argentine stepped up again to beat Sommer for a second time and complete the comeback for Xabi Alonso's team in the 73rd.
They hung on to victory despite late pressure from the Bavarians and chances from Kinglsey Coman and Matthijs de Ligt.
Bayern, who face Manchester City in the Champions League quarterfinals next month and are also through to the German Cup last eight, remain in second place on 52 points, one behind leaders Borussia Dortmund, who crushed Cologne 6-1 on Saturday.
Leverkusen climbed up to eighth on 37.
"It is clear against Dortmund we have to win, to firstly take over the lead and then hopefully bring the title to Bayern," Nagelsmann said.
"If we don't win it or lose then with the form that Dortmund currently have it will be difficult."
- Tobias Stieler
|1. FC Heidenheim 1846||13||3||2||8||-10||11|
|SV Darmstadt 98||13||2||3||8||-19||9|
|1. FC Union Berlin||12||2||1||9||-15||7|