Brazilian defender Naldo scored in the fourth minute of injury time as Schalke rallied from four goals down to draw 4-4 at Borussia Dortmund in the Bundesliga's 91st Ruhr derby on Saturday.
Dortmund raced into a 4-0 lead after just 25 minutes and was hanging on for what would have been its first Bundesliga win since September when Naldo headed Yevhen Konoplyanka's corner beyond Roman Weidenfeller.
The game ended with a melee involving both sets of players before Dortmund's Nuri Sahin and Schalke goalkeeper Ralf Faehrmann were booked by referee Deniz Aytekin. Faehrmann had appeared to be goading the home fans before Sahin intervened.
Both sides finished with 10 players — Dortmund after goal-scorer Pierre-Emerick Aubameyang was sent off with his second yellow card, Schalke after goal scorer Amine Harit went off injured when Domenico Tedesco had made all his substitutes.
Tedesco's counterpart, Peter Bosz, will face questions of how his Dortmund side allowed a four-goal lead to slip away at home, while the draw will not give him the job security he needs after just one win across 10 competitive games.
Aubameyang opened the scoring in the 12th minute, sliding in to convert past Faehrmann at the second attempt after the Schalke goalkeeper blocked his first. TV replays showed the rebound came off Aubameyang's hand, though he didn't have time to take it away.
Six minutes later it was 2-0, after Benjamin Stambouli spectacularly turned Sahin's free kick into his own net.
Aubameyang produced a brilliant cross for Mario Goetze to head Dortmund's third only two minutes later, then Raphael Guerreiro hammered a volley inside the far post for the side's fourth five minutes after that.
Tedesco reacted with a double substitution, including Leon Goretzka for Weston McKennie, who had been booked early on. Schalke defender Thilo Kehrer, booked for a rash challenge on Sahin, was fortunate not to be sent off for another on Andrey Yarmolenko before the break. Kehrer didn't emerge for the second half as Tedesco brought Matija Nastasic on for his final substitution.
Naldo thought he'd pulled one back as Schalke pushed forward, but the goal was ruled out for offside.
Aubameyang should have scored Dortmund's fifth following a mistake from Faehrmann, but instead Guido Burgstaller scored at the other end, then Harit ensured an exciting finale with Schalke's second with 25 minutes remaining.
Daniel Caligiuri cut inside to fire Schalke's third goal with four minutes remaining, and the side was given seven minutes' injury time to find the equalizer. Naldo only needed four.
The draw keeps third-place Schalke three points ahead of Dortmund.