Pierre-Emerick Aubameyang gave Jurgen Klopp's men the lead in the 14th minute before Kevin-Prince Boateng missed the chance to equalise from the penalty spot.
Nuri Sahin doubled Dortmund's lead in the 51st minute before Max Meyer reduced the arrears, but Jakub Blaszczykowski guaranteed victory for the Black and Yellows.
The teams emerged for the 143rd Revier derby but were soon asked to retreat as visiting fans lit flares and threw fireworks onto the Veltins-Arena pitch, prompting the referee to delay kick-off.
Last season had seen Schalke win both league meetings 2-1.
When the match did get under way, it was Dortmund who seemed to have more fire in their bellies as they were straight on the attack with Marco Reus testing Timo Hildebrand.
Five minutes later, Reus exchanged passes with Henrikh Mkhitaryan to break through down the right, and his cross fell for Aubameyang to tuck the ball home from close range.
The Gabonese then tested Hildebrand with a header as the home goal came under increased pressure.
The Schalke goalkeeper would deny both Reus and Robert Lewandowski, and Aubameyang once again, as Dortmund created numerous chances without putting any of them away.
Their wastefulness was nearly punished when Christian Fuchs cut into the penalty area before tangling with Neven Subotic shortly after getting his cross in.
A penalty was awarded and Boateng stepped up to send the ball a little too close to Roman Weidenfeller, who parried the shot and watched in relief as the rebound was sent over the bar.
Dortmund extended their lead early in the second half when Mkhitaryan squared the ball for Sahin who, 25 yards away from goal, picked his spot to the right of Hildebrand with an arrowed effort.
Schalke coach Jens Keller's response was to send Meyer on and within minutes he dribbled his way past three defenders before setting up Adam Szalai for a shot which was blocked by Weidenfeller.
Meyer, however, swept the rebound in.
The home team's hopes of a recovery did not last long as Blaszczykowski, who had been brought on to preserve the lead by Klopp, actually extended it to seal victory, keeping his cool to beat Hildebrand with a composed finish.