There were flares, fouls and thunderbolt goals as the Bundesliga's "Super Saturday" lived up to its billing. The headline match of the day was a pulse-racing Ruhr derby between Schalke and Borussia Dortmund.
It was the latter who emerged from Schalke's Veltins-Arena with a 3-1 victory to keep pressure on Bundesliga leaders Bayern Munich, who had to battle hard to defeat Hertha Berlin 3-2.
Other winners on Saturday were Bayer Leverkusen, Mainz and Wolfsburg, while Hannover had two men sent off in a 4-1 implosion at home to Hoffenheim.
Hannover's horror show may have normally hogged the headlines, but that honor was always going to belong to the Ruhr derby - even before the flare-throwing from segments of Dortmund's traveling fans delayed the start of the match.
With several flares thrown both onto the pitch and - far more dangerously - from one stand to another, referee Knut Kirchner called players off the pitch until the drama subsided. Dortmund captain Roman Weidenfeller had to dodge a flare on his own after approaching the stand to call for calm.
Play got underway several minutes later than scheduled, and it was Dortmund who drew first blood. The opener came in some style, with Kevin Grosskreutz, Marco Reus and Henrik Mkhitarayan combining to leave Schalke's defense chasing shadows and Pierre-Emerick Aubameyang with a comfortable finish.
The drama continued to come thick and fast, and Schalke were handed the best way to level the scores when Dortmund defender Neven Subotic bundled over Christian Fuchs in the area. But Kevin-Prince Boateng's spot-kick was hit far too close to Weidenfeller, and the save was made.
Mkhitarayan further added to his already burgeoning reputation on 51 minutes by setting up Nuri Sahin for Dortmund's second, but the goalscorer's superbly hit from outside the area more than deserves its own mention.
A Max Meyer goal 11 minutes later proved merely a consolation for Schalke, who conceded again on 74 minutes through Jakub Blaszczykowski - with Mkhitarayan again the supplier - to complete the scoreline.
Bayern hurt early by Hertha
In Munich, Bayern found themselves down after just four minutes when Adrian Ramos rose highest from a corner to head home. The hosts had leapt out to a 3-1 lead by the 54th minute, however, with "Super Mario" substitutes Mandzukic (two goals) and Götze (one) demonstrating the depth in coach Pep Guardiola's arsenal.
But Hertha's performance deserved better, and Anis Ben-Hatira scored on 58 minutes to ensure a few late nervy moments for Bayern before they held on to a win.
Like Bayern, Leverkusen found themselves down early against underdog opposition when Andre Hahn finished neatly, but goals to captain Simon Rolfes and Emre Can handed them the three points. Mainz, meanwhile, picked up their first league win since August 24 thanks to Shinji Okazaki's double against Eintracht Braunschweig.
Nightmare outing for hosts
Hosts Hannover were looking to protect their undefeated home record this season but were in trouble after just 10 minutes, when Sejad Salihovic put Hoffenheim ahead from the penalty spot. It was the stuff of nightmares thereafter.
Recalled striker Mame Biram Diouf received two yellow cards in a minute just moments after Salihovic's spot-kick, and Hoffenheim capitalized to go 2-0 up through Kai Herdling's superb header.
Salif Sane kept Hannover's hopes alive with his own headed goal on 56 minutes, but a Roberto Firmino double - with the hosts losing Marcelo to another red card in the wake of the second - completed an awful afternoon for Mirko Slomka's men.
In Saturday's later game, Wolfsburg defeated a disappointing Werder Bremen outfit 3-0 at the Volkswagen Arena. Rudderless without injured front man Nils Petersen, Bremen failed to pose an offensive threat and fell to goals from Maximillian Arnold, Ivica Olic and Ivan Perisic.