Jupp Heynckes' side were left stunned when Jerome Boateng sent the ball past Manuel Neuer to consign his side to their first Bundesliga defeat of the season
Stefan Kiessling got a breakaway goal for the visitors just before half time, but Mario Mandzukic equalised for the dominant hosts with 12 minutes left to play. However, with die Roten pressing for a winner, Sidney Sam's header was diverted past Manuel Neuer by the unfortunate Jerome Boateng.
The Bavarians were the ones to start the game on top. Within two minutes of kick-off, Toni Kroos sprayed a ball to Thomas Muller on the right wing, and the Germany winger wasted no time in sending in a crisp cross that Bastian Schweinsteiger tried, in vain, to divert into the net.
Soon after, David Alaba picked out Schweinsteiger, who found himself crowded out by Stefan Reinartz before he could get away a shot, before the Bayern vice-captain sent in a cross to Muller, who headed wide.
Holger Badstuber was the next player to centre the ball, and Mario Mandzukic forced a great reaction save from Bernd Leno, who got down well to parry it, and Alaba was inches away from diverting the ball into the net.
It seemed to be a matter of time before the hosts took the lead, but they were perhaps unlucky to avoid falling behind when a Kiessling effort from a set piece was ruled out for a dubious foul on Dante by Philipp Wollscheid.
Leverkusen were heartened by the incident, and would have taken the lead on 32 minutes, were it not for a fantastic touch by Neuer, who diverted a Dani Carvajal cross away from Kiessling's head.
At the other end, some fine combination play from Muller and Mandzukic released Kroos in the box, but the 22-year-old fired straight at Leno from close range, before Schweinsteiger's powerful drive from 25 yards was diverted wide by the young keeper.
Eventually, though, Bayern's wastefulness came back to haunt them. Leverkusen counterattacked superbly, with Simon Rolfes releasing Andre Schurrle and he pulled the ball across the face of goal for Kiessling, who tapped home.
Seconds before the interval, the lead was almost doubled, only for the hosts' blushes to be spared by a dubious offside decision against the goalscorer.
After the break, Bayern needed to take back the impetus. Heynckes introduced Xherdan Shaqiri in the place of Holger Badstuber, and the Swiss youngster almost made an immediate impact, picking out Kroos, who sent a shot wide via a deflection.
Leno got down fantastically to tip a stinging shot from Jerome Boateng around the post, before chipping the ball into Muller, who headed wide under pressure from Wollscheid.
Arjen Robben came on after an hour in the place of Luiz Gustavo, but within seconds, Bayern almost fell two behind, only for Kiessling to head an inviting cross into the ground, and straight at Neuer, who then made a decent stop from Gonzalo Castro.
Shaqiri came close to grabbing an equaliser soon after with a 25-yard effort which Leno did well to parry, before the former Basel man picked up a booking for a cynical dive in the area which was rightly punished.
Robben played a well-weighted ball to send Mandzukic clear, only for Wollscheid to make a brilliant block to stop the Croatian from getting a sight of goal, and Toprak soon followed suit to deny Muller.
Time was running out for the Bavarians to get back into the match, and Leverkusen's stern defence showed no signs of subsiding, until the 77th minute. Claudio Pizarro, fresh on as a substitute, played in Mandzukic, who headed into the net with Leno stranded.
Within seconds, they were within inches of turning the game on its head entirely. Pizarro drove a cross-shot across the face of goal, it struck the bewildered Mandzukic and bounced agonisingly off the post.
The hosts pressed for a winner, but four minutes from time, they were left reeling. Carvajal sent in another great cross from the right, Sidney Sam got his head to it, and it struck the unfortunate Jerome Boateng in the face and trickled past Neuer.
Manuel Neuer had a hand in setting up a 93rd-minute chance for Mandzukic, who headed across the woodwork, but it was all too late. The Allianz Arena had been stunned: Bayern's unbeaten record had come to an end, and Leverkusen had claimed their first away win over the Bavarians for over 20 years.