Leverkusen looked set to open up a six point gap on Bayern but they were denied by Sebastian Proedl's stoppage time equaliser.
Die Werkself took the lead four minutes before the break from a corner won when Tim Wiese had pulled off a superb reflex stop from Sidney Sam. The Bremen 'keeper's heroics were in vain as Eren Derdiyok leapt like a salmon from Gonzalo Castro's subsequent set-piece to power home his header into the net.
The visitors doubled their lead midway through the second period through their skipper. Michal Kadlec retrieved the ball after the inital corner was cleared. Derdiyok then laid the ball off to the unmarked Simon Rolfes, who kept his composure to stroke the ball beyond Wiese and put the game beyond doubt.
Die Gruen-Weissen gave themselves hope with eight minutes left. Florian Trinks' wonderful cross from the left-hand side towards Mertesacker was headed into the net by the unfortunate Stefan Kiessling, who had replaced Derdiyok just a minute earlier. The goal sparked rather emotional celebrations from Schaaf on the touchline and gave Werder renewed hope.
Buoyed by having a numerical advantage, Werder rescued a point in dramatic fashion in the first minute of injury time. Leverkusen's offside trap failed them as Aaron Hunt picked out the head of centre-back Sebastian Proedl and the Austrian defender powered home the header.
Werder included youngster Trinks in the starting line-up ahead of Marko Marin and the 18-year old looked bright in the early stages. He played a fine through-ball on 19 minutes to find Tim Borowski but the veteran's tame left-footed strike failed to trouble Rene Adler. Borowski then spurned an even better chance. Trinks was the provider once more but again the veteran's finishing touch lacked confidence and Adler parried the ball to safety.
Leverkusen had a goal ruled out for offside just before the half-hour mark. Per Mertesacker's clearing header found Arturo Vidal, whose blocked shot ricocheted to Castro. The utility man forced a fine stop from Wiese and although Derdiyok tucked the rebound away, the Swiss attacker stood in an offside position.
After Leverkusen's second goal, Werder threw caution to the wind and Sandro Wagner was foiled by an excellent point-blank save from Adler on 73 minutes. Claudio Pizarro was denied four minutes from time by Adler before Arturo Vidal was sent off after picking up a second booking for scything down Clemens Fritz.
Werder have once again slipped into the relegation play-off spot ahead of next week's long trip south to Freiburg. Leverkusen are ten points off Dortmund and they host another side battling the drop next week in Wolfsburg.