It was one of the most anticipated matches of the season and it didn't disappoint. After Dortmund took a 4-0 first half lead over their local rivals, Schalke bounced back with four in the second half to earn the draw.
Borussia Dortmund 4 - 4 Schalke
(Aubameyang 12', Stambouli (OG) 18', Götze 20', Guerreiro 25' - Burgstaller 61', Harit 65', Caligiuri 86, Naldo 90+4)
How often do big matches get huge buildups only to disappoint on the day? This definitely wasn't the case on this Saturday at the Signal Iduna Park in Dortmund.
BVB coach Peter Bosz went into this match desperately needing a win, having admitted himself that if his team failed to do so, he could be out of a job by Sunday morning. And in what looked like a statement of support for their coach, his team, who have been very much out of sorts for weeks, came out firing on all cylinders.
However, it was the Dortmund goal that was the first to come under threat, where Roman Weidenfelder had replaced first-choice keeper Roman Bürki, who has had a bad run of form. Fortunately for Weidenfelder though, Yevhen Konoplyanka's weak effort was off the target.
Dortmund draw first blood
Then it was time for the Dortmund offense to open things up. Pierre-Emerick Aubameyang drew first blood, bundling the ball home after Nuri Sahin took a whack at a nice cross from the young American, Christian Pulisic. The replay make it look like Aubameyang had put the ball in with his hand, but the goal stood.
Six minutes later, Dortmund caught a break, as Schalke midfielder Benjamin Stambouli put the ball past Ralf Fährmann to make it 2-0 for BVB. Goals from Mario Götze and Raphael Guerreiro put Dortmund up 4-0 inside of 25 minutes.
As the two teams went into the dressing rooms at halftime, it was hard to see Schalke getting anything from this match, but they came out determined to give a better account of themselves. Naldo struck on 53 minutes, but it was called back for offside.
Belief grows for visitors
Six minutes later, though, the Royal Blues opened their account on the night, with Guido Burgstaller beating Weidenfeller with a header to pull one back. Five minutes later, Amine Harit brought the visiting fans to their feet again and believing they could get something from this one, scoring off a nice cross from Konoplyanka.
The Schalke fans would have to wait for another 21 minutes for the chance to cheer again, as Daniel Caligiuri barged into the BVB area, two defenders watched as he moved to a better angle and buried it past Weidenfelder.
Just before the 90 minute mark, it looked like Dortmund, who had been down to 10 men since the 72nd minute, when Aubameyang was sent off for a second yellow card, would hang on for the win. However, the fourth official announced that there would be seven minutes of time-added-on. This amounted to new life for Schalke - and they capitalized - Naldo rose above the BVB defenders and buried it in the fourth minute of injury time to make the final 4-4.
Below you can read our live coverage of the match as it happened.
RESULT: BVB 4 - 4 Schalke
Referee Aytekin issues yellow cards to both Fährmann and Sahin. Now the match is really over.
After the final whistle there is a confrontation down in front of Schalke's goal, with almost everybody from both teams off the bench. Cooler heads quickly prevail though.
90'+7 It's over!
90'+4 Goal for Schalke! Naldo puts away the header from a Schalke corner. Unbelievable!
90' The fourth official holds up his board: Seven minutes of time-added-on to be played!
89' Sokratis goes down in a lump after a battle for the ball with Konoplyanka on the touch line. Konoplyanka gets the yellow card.
88' Caligiuri with another effort, but it poses no problem for Weidenfeller.
86' Goal for Schalke! Caligiuri barges into the area, fools two or three defenders, and finishes beautifully! No chance for Weidenfeller.
85' Harit limps back onto the pitch.
83: Bosz takes off one of the goal scorers, Guerreiro in favor of Zagadou.
81' Harit is carried off the pitch after that tackle that earned Castro the yellow card.
78' Substitution for Dortmund: Castro comes on for Götze and almost immediately earns himself a yellow card.
75' Pulisic with a good run down the left but he goes down in a tackle by Stambouli. No foul.
73' Schalke almost capitalize right away, but the ball rings off the post to Weidenfelder's left.
72' Aubameyang seees a second yellow card for a rough tackle on Harit. That mean's red and Dortmund are down to 10 men!
68' Peter Bosz looks to shore up BVB's defense and protect that two-goal lead, bringing on defender Marc Bartra and taking off right winger Yarmolenko.
67' Burgstaller with another effort, but it bounces wide of the BVB goal.
65' Goal for Schalke! Harit scores after a cross from Konoplyanka. Suddenly Schalke could be back in it!
61' Goal for Schalke, and this time it counts! Stambouli with a long ball into the box. Burgstaller beats Sokratis to the header and loops it over Weidenfeller, who was too far off his line.
60' A nice run from Guerreiro. Stambouli blocks Aubameyang's effort. The resulting corner comes to nothing.
55' Fährmann misplays a back pass, but manages to recover to stop Aubameyang from close range but a bad angle. Just moments earlier, Aubameyang was handed the yellow card after an encounter with Naldo.
53' Goal for Schalke! Aytekin gets a message in his ear from the VAR! Naldo was offside! No goal!
52' Schalke have had a bit more of the ball in the starting few minutes of the second half, but they haven't been dangerous.
49' Goretzka heads the ball over Weidenfeller's goal.
46' Schalke kick off to get the second half started. You have to wonder what Tedesco said to his men in the halftime break.
Out of town halftime scores:
Leipzig 1 -0 Bremen
Freiburg 0 - 0 Mainz
Frankfurt 0 - 0 Leverkusen
Augsburg 0 -1 Wolfsburg
45'+2 Aytekin blows his whistle for the halftime break!
45'+2 Caligiuri sees yellow for backchat to the ref.
45' Schalke penetrate Weidenfelder's area for the first time in ages, but a mishit ball sails wide.
40' Kehrer misplays the ball and Yarmolenko gobbles it up. Kehrer makes a wild lunge for the ball and brings down the Ukrainian. Maybe should have been a second yellow, but referee Aytekin leaves it at a warning. You have to wonder how long Tedesco will dare to leave Kehrer in, but of course he has already used to of his subs.
There has also been a goal in Leipzig:
33' Tedesco has decided he has to change things and makes a double subsitution: Di Santo and McKennie come off for Goretzka and Harit.
25' Dortmund get another! The Schalke defenders managed to shut down Aubameyang, but the ball fell kindly to Guerreiro who delivered a beautiful volley across Fährmann's goal and into the top far corner.
22' Yellow card for Kehrer after he went in with the studs showing at Sahin.
20' Götze puts it in, 3-0 for Dortmund! Aubameyang made a lovely run down the right flank and played a lovely cross to Götze, who headed it into the ground and past a helpless Ralf Fährmann.
18' Goal for Dortmund! This one was an own goal by Stambouli! It's all going BVB's way at the moment.
15' Looking at the replay of the goal, it looks like it went in off Aubameyang's hand. No VAR though.
13' Aubameyang gets another opportunity but it goes over.
12' Goal for Dortmund! Pierre-Emerick Aubameyang bundles it home after Sahin took a what at a cross from the right by Pulisic.
8' Götze gets a free kick about five meters outside of the box. But nothing comes of it. At least three BVB players were offside anyway.
7' So far the two teams have been neutralizing each other through tight marking. Little surprise perhaps, as so much is riding on this match - especially for Peter Bosz.
3' Mckennie gets the first yellow card of the match for coming in with a late tackle.
1' Roman Weidenfeller, in goal in place of Roman Bürki has his age threatened first, but Konoplyanka fires it over.
1' - Referee Deniz Aytekin blows his whistle and Dortmund kick off to get us started in this 173rd Revier derby!
Good afternoon from Germany! We'll be bringing you live action from two Bundesliga matches this Saturday. First it is the Revier derby, as Borussia Dortmund host Schalke. You know all about Der Klassiker, but this is the real deal. It's one of Germany's oldest footballing rivalries, and it splits the Ruhr district (and in some cases families) down the middle!
The starting lineups are out: