And whilst the Royal Blues had their moments in the second half, Raphael Guerreiro and then Haaland struck to give Dortmund a resounding win at VELTINS-Arena.
BVB went into the derby looking to close the nine-point gap to the Champions League places, whilst S04 were rock bottom having picked up nine points all season. Both clubs therefore needed to win to keep their objectives alive.
Edin Terzic made only two changes for the much-anticipated clash, just three days after the Champions League clash with Sevilla. Julian Brandt started in place of Jude Bellingham, whilst Thomas Delaney replaced the injured Manuel Akanji, with Emre Can dropping into the heart of the defence.
It was Dortmund who dominated from the outset, almost taking the lead against a deep-lying Schalke side early on. Haaland fed the ball to Sancho just inside the area but he couldn’t get the better of Ralf Fahrmann.
But for their dominance, the visitors lacked consistency and precision in the final third, but ten minutes before half time the Black & Yellow’s came alive.
Michael Langer was called upon for only his second appearance for Schalke after injury to Fahrmann, and Mahmoud Dahoud – fresh from scoring against Sevilla – forced the sub keeper into a smart save from the edge of the box.
And that proved to be the catalyst as Dortmund went in front three minutes before half time. Mateu Morey won the ball from Benjamin Stambouli deep in the Schalke half and found Sancho, who made it 1-0 with a well-placed shot beyond Langer from inside the area.
The Englishman then paved the way for the second goal in first half added time when he crossed in from deep on the left and picked out Haaland, who produced a stunning acrobatic finish to put Dortmund in control.
Schalke made two changes for the second half, with Omar Mascarell and Alessandro Schopf coming on and the Royal Blues got forward more – and created two big chances.
In the 50th minute Mascarell played a high ball to Timo Becker, which eventually fell to Suat Serdar after a header away by Can, but his low shot from twelve yards was tipped onto the post by the diving Marwin Hitz.
Dortmund seal the deal
But instead of a goal to bring the hosts back into the game, the visitors added to their tally. Guerreiro played a neat one-two with Marco Reus in the box and slotted beyond Langer to make it 3-0 on the hour mark.
Dortmund were in the ascendancy after that third goal and with little over ten minutes to play found a fourth. Substitute Bellingham’s low cross across the six-yard box was turned in by Haaland at the far post from close range to seal the league double against their rival for the first time since 2011/12.