Berlin: Henrikh Mkhitaryan inspired Borussia Dortmund to a 3-1 win at bitter rival Schalke in the Bundesliga on Saturday, while Bayern Munich survived a scare to beat Hertha Berlin 3-2.
Mkhitaryan was involved in all of his side's goals, after the 143rd Ruhr derby was delayed due to flares causing thick yellow smoke in the Dortmund fans' stand.
As referee Knut Kircher led the teams back off the pitch, Dortmund goalkeeper Roman Weidenfeller appealed to the hooded supporters to desist, only to have lit flares thrown in his direction. Dortmund fans were also blamed for rioting before the game.
"They're not pretty pictures, to put it mildly," Dortmund coach Juergen Klopp said. "You feel shame at times like this. I'm often proud of our fans but that was disruptive in the truest sense of the word. We won despite it, not because of it."
Dortmund seized the initiative once play got underway. Mkhitaryan sent Marco Reus through to cross for Pierre-Emerick Aubameyang's opening score in the 14th minute.
Schalke had the chance to equalize after Neven Subotic conceded a penalty in the 30th, but Kevin-Prince Boateng failed to convert against his former club when Weidenfeller saved his spot kick.
Mkhitaryan led a counterattack to set up Nuri Sahin's wonderful 20-meter (yard) strike in the 51st, and the Armenia midfielder led another in the 74th for Jakub Blaszczykowski to seal the result, 12 minutes after the 18-year-old Schalke substitute Max Meyer pulled one back on a rebound.
League leader Bayern had to come from behind to win and stretch its unbeaten league run to 35 games, while being grateful not to concede a penalty in injury time. Hertha protested when Adrian Ramos fell under last defender David Alaba's challenge on the edge of the box.
Ramos had scored with a header from Per Ciljan Skjelbred's corner in the fourth minute, and Hertha might have been 2-0 shortly afterward, when Anis Ben-Hatira struck the crossbar.
There was more bad news for Bayern when Toni Kroos and Arjen Robben both went off with groin problems within two minutes of each other. But the substitutes, Mario Goetze and Mario Mandzukic, managed to turn the game around.
"The changes decided the game," Hertha coach Jos Luhukay said.
Mandzukic scored in the 29th, three minutes after going on, with a header from Franck Ribery's free kick.
Then Bastian Schweinsteiger sent in another free kick for the Croat to score a second with another header in the 51st.
Goetze made it 3-1 with a header three minutes later, four minutes before Ben-Hatira's consolation goal for the promoted side, one of the few not to appear intimidated in Munich this season.
"Berlin were the best team we've faced," Bayern coach Pep Guardiola said. "For us, the will was there, but our legs didn't function well. The players need time to relax, they were tired. Now that we have a whole week (without European or German Cup games) we can better implement our ideas."
Ribery set a Bundesliga record of playing in 39 straight games without defeat, breaking Holger Hieronymus' 30-year-old record set while playing for Hamburger SV, while Bayern is just one game from tying Hamburg's record 36-match run without losing.
Bayer Leverkusen also came from behind to beat Augsburg 2-1 and stay level on points with Dortmund, one behind Bayern.
Andre Hahn put the visiting side ahead with a fine volley in the 24th, only for Simon Rolfes to equalize in the 34th and Emre Can to pop up with the winner eight minutes from time.