Hakan Calhanoglu opened the scoring 55 minutes in with a typically spectacular free kick before Julian Brandt sealed a surprise win for the hosts in the closing stages
Although coach Pep Guardiola will likely make a few changes ahead of his first return to his former club for Wednesday's semi-final first leg, injury-ravaged Bayern were far from their best and looked distracted, with Hakan Calhanoglu and Julian Brandt inflicting a deserved defeat a week on from clinching the title.
Still reeling from a penalty shootout defeat to Borussia Dortmund in the DFB-Pokal semi-final on Tuesday, Guardiola's men began well before fading away and allowing Leverkusen to take charge.
Bayern held firm throughout the first half, with Javi Martinez – returning after nine months out – impressing at the back, but Calhanoglu broke the deadlock in trademark fashion early in the second period.
Taking the lead only seemed to increase the focus in the Leverkusen team, inspiring a search for more goals as they piled men forward at every opportunity.
Mario Gotze should have drawn Bayern level when one-on-one with Bernd Leno in the 76th minute, but Leverkusen ultimately wrapped things up through Brandt late on, with Barcelona - who beat Cordoba 8-0 on Saturday - next up for Guardiola's wounded team.
Due to the combination of Wednesday's trip to Camp Nou and a host of injuries, Guardiola afforded Claudio Pizarro, Mitchell Weiser and Gianluca Gaudino rare starts, while Rico Strieder made his first-team debut.
Despite fielding such a changed side, Bayern began the contest brightly and fashioned the first opportunity after seven minutes, Gotze testing Leno from distance before Pizarro failed to convert from the rebound.
The hosts quickly grew in stature and should have been ahead in the 10th minute after starting to dictate the tempo, but Stefan Kiessling saw his headed goal harshly disallowed for offside.
Although Bayern had been second best, the champions looked destined to capitalise on that let-off as Gotze raced free of the hosts' defence in the 27th minute and skipped past Leno, but Tin Jedvaj's desperate lunge prevented the German's effort from crossing the line.
Bayern seemingly came out for the second half with renewed determination, as Pizarro charged through, held off Jedvaj and forced Leno into a crucial block from the edge of the area.
But the home side regrouped and took the lead with 55 minutes on the clock, free-kick specialist Hakan curling over the wall and into the bottom-left corner from 25 yards.
Despite Leverkusen's superiority, Bayern were presented with a glorious opportunity to equalise in the 76th minute as Gotze ran through on goal, but the Germany star could not find a way past Leno.
And Leverkusen took full advantage, doubling their lead minutes later, birthday boy Brandt providing a cool finish after a brilliant solo run from Karim Bellarabi, consigning Bayern to only their third league defeat of the season.