By Simon Fudge
Last Updated: 01/01/70 1:00am
The home side got off to a tremendous start as Dimitar Berbatov put Bayer in front after just three minutes.
The visitors were able to pull level 11 minutes later when Uefa Cup hero Mike Hanke made it 1-1.
But 11 minutes after Schalke's equaliser, Leverkusen restored their lead through through Marko Babic (pictured).
Four minutes after the break, Schalke were reduced to ten men as Annibal Matellan was sent off for serious foul play.
Daniel Bierofka then added a third goal to secure the three points for Klaus Augenthaler's men.
Champions Bayern Munich stay six points off the lead following a 4-1 mauling of Borussia Dortmund at the Olympiastadion.
Michael Ballack gave Bayern a 1-0 lead before Dortmund were reduced to ten men as Markus Brzenska was sent off for a second bookable offence two minutes from the break.
Despite being a man down, the visitors equalised four minutes after half time through big Czech striker Jan Koller.
However, a minute later, Frenchman Willy Sagnol restored the home side's lead before Hasan Salihamidzic made it three and Claudio Pizarro scored a fourth in the last minute for a comfortable win.
Click below for match summaries:
Click here for an updated Bundesliga table.