Leverkusen top despite late slip up
Vicente Sanchez's 88th-minute header completed Schalke's comeback, five minutes after Kevin Kuranyi had pulled the home team back into the game.
Leverkusen have 23 points from 11 matches, two points more than fourth-placed Schalke.
"We collapsed at the back towards the end. We definitely gifted two points tonight," Leverkusen keeper Rene Adler told reporters.
Werder Bremen are second on 22 points after a stoppage-time equaliser by Aaron Hunt earned a 2-2 draw at Nuremberg.
Borussia Moenchengladbach ended Hamburg SV's unbeaten run this season with a 3-2 win.
The visitors twice came from behind and scored a late winner through Canadian Rob Friend to leave Hamburg in third spot on 22 points.
Fifth-placed Bayern Munich drew 0-0 at VfB Stuttgart, who ended their five-match losing streak in all competitions to offer coach Markus Babbel some respite.
Battling Mainz drew 3-3 at champions VfL Wolfsburg, recovering from 2-0 and 3-2 down to level with a Tim Hoogland goal five minutes from time.
Wolfsburg are sixth on 18 points, one behind Bayern.
Leverkusen were dominant in the first half and Toni Kroos struck after 29 minutes, firing an unstoppable volley from 18 metres past keeper Manuel Neuer.
The visitors almost doubled the lead three minutes before the break when Eren Derdiyok hit the post.
Stefan Kiessling went one better in the 44th when he headed in a Tranquillo Barnetta cross for his seventh league goal of the season.
Then, on the stroke of half-time, Kiessling had a header punched on to the bar by Neuer.
Schalke surged forward in the second period and Kuranyi ended a scramble in the box to knock the ball over the line before Sanchez grabbed the equaliser.
Kroos said: "What is left is only disappointment ... for how we let the game slip out of our hands".
Stuttgart set a frantic early pace against Bayern, stretching keeper Hans-Joerg Butt twice with shots from Julian Schieber and Christian Traesch.
Bayern's Anatoliy Tymoshchuk tried several long range efforts but neither Miroslav Klose nor former Stuttgart striker Mario Gomez, making a rare start for the Bavarians, carved out scoring opportunities.
Visiting coach Louis van Gaal brought on striker Luca Toni for Klose in the second half and the Italian made an immediate impact, twice going close.
Toni put the ball in the net four minutes from time but was ruled offside.
"I think we had more possession but did not create many chances so in a way I am satisfied," Van Gaal told reporters.