Eren Derdiyok grabbed an 84th-minute winner as second-placed Leverkusen closed the gap to 10 points on leaders Bayern Munich who meet Eintracht Frankfurt on Sunday.
Kevin-Prince Boateng also scored a late goal to give Schalke a 2-1 win at home to 10-man VfL Wolfsburg while Hoffenheim added to Hamburg SV's troubles with a 3-0 victory.
Bayern have 50 points with Leverkusen on 40, Borussia Dortmund on 36 and Schalke on 34.
(Reporting by Brian Homewood; editing by Tony Jimenez)
