The hosts, chasing a third straight derby success for the first time since 1969, fell behind to Pierre-Emerick Aubameyang's 14th minute opener and Kevin-Prince Boateng subsequently passed up the opportunity to pull level from the penalty spot before the interval. After it, Nuri Sahin and Jakub Blaszczykowski sealed the win for BVB, with youngster Max Meyer temporarily reducing the arrears in between. The result leaves Dortmund still a point behind front-runners FC Bayern at the top of the standings, while Schalke remain fifth for the time being.
In the wake of Tuesday's 3-0 UEFA Champions League home loss to Chelsea, Schalke head coach Jens Keller reshuffled his starting XI with Christian Fuchs reinstated, but deployed in an unusually advanced role backed up by Sead Kolasinac down the left and Dennis Aogo - also a left back by trade - operating as a holding midfielder.
None of which helped the hosts in the 14th minute of a lively opening spell, as Dortmund tore them apart down the right with the first penetrating attack of the contest. Henrikh Mkhitaryan picked up on Aogo's interception of a Kevin Großkreutz pass and played it on swiftly to Marco Reus, whose square ball into the box was swept home by the onrushing Aubameyang for his sixth goal of the campaign.
Penalty chance spurned
Forced to chase the game with only a quarter of an hour on the clock, the Royal Blues were almost caught out again a couple of times in quick succession midway through the half. Timo Hildebrand just beat the onrushing Reus to a dangerous through ball, before making fine back-to-back saves from Robert Lewandowski, freed up by Mkhitaryan, and Aubameyang's follow-up effort from outside the box.
Just shy of the half-hour mark, the hosts were then offered the chance of an equaliser on a plate when Fuchs tumbled under a challenge from Neven Subotic inside the box and the referee pointed to the spot. Roman Weidenfeller got across to Boateng's mid-height strike - the first time a Schalke player had ever missed one in a Bundesliga derby - taking the Dortmund custodian's penalty-stopping quota up to four from the last eight he has faced.
Meyer hands Schalke a lifeline
The action continued unabated, with phases of good play from both sides mixed in with commitment aplenty, but aside from the odd half-chance on the break for the visitors there was little further threat to either goal before the interval. That all changed dramatically six minutes after the restart, though, when Dortmund struck again with a lightning fast breakaway after intercepting a long ball on the edge of their own box. Mkhitaryan accelerated away down the right before teeing up Sahin for a fine finish into the top corner from just outside the area.
Schalke really needed to respond now, and they did. Keller brought on Max Meyer for Fuchs with just under half an hour to go and the 18-year-old's first contribution, seconds later, was to skip past two challenges on the left of the box and square the ball to Adam Szalai. The Hungarian forward's close-range shot was blocked by Weidenfeller, but Meyer slotted home the rebound to get the hosts right back in the contest.
Blaszczykowski wraps it up for Dortmund
That proved as close as they would come, however, as BVB once again demonstrated their counter-attacking flair to effectively kill off the game as a contest in the 74th minute. Mkhitaryan snapped up the ball on the edge of his own box after Draxler had lost possession and carried it the length of the pitch in a sweeping diagonal run before squaring for Jakub Blaszczykowski, fresh off the bench, to plant past Hildebrand at the near post.
There was still time enough for the Royal Blues to try and rally once again, but Dortmund kept everything well under control from thereon in, confidently exacting their revenge for Schalke's league double last season.
Line-ups and statistics
FIFA 14 wasn't quite spot on with it's prediction. Check it out on the official Bundesliga YouTube channel.