Former Liverpool loan signing Nuri Sahin scored as Borussia Dortmund kept the pressure on leaders Bayern Munich by winning 3-1 at rivals Schalke.
Sahin, on loan from Real Madrid, doubled the score after Pierre-Emerick Aubameyang had given his side the lead.
Dortmund goalkeeper Roman Weidenfeller appealed to fans who threw fireworks onto the pitch before saving a Kevin-Prince Boateng penalty.
Max Meyer scored for Schalke, Jakub Błaszczykowski adding Dortmund's third.
Bayern Munich remain top of the Bundesliga, one point ahead of Dortmund.
But Pep Guardiola's side were made to work hard before running out 3-2 winners against Hertha Berlin at the Allianz Arena.
Adrian Ramos gave the visitors the lead before two goals by Mario Mandzukic and another from Mario Gotze put the hosts in control.
However, Anis Ben-Hatira's effort made it a nervy ending for Bayern.
Bayer Leverkusen are level on points with Dortmund after Emre Can scored in the 82nd minute to give Sami Hyypia's side a 2-1 home win over Augsburg.
Andre Hahn had given the visitors the lead before Simon Rolfes equalised.
Elsewhere, Roberto Firmino scored twice in Hoffenheim's 4-1 away win at Hannover, while Shinji Okazaki got both goals as Mainz beat bottom club Eintracht Braunschweig 2-0.