Goals from Kagawa, Ginter and Aubameyang allowed BVB to keep up the chase on runaway leaders Bayern at the top, while two strikes from Huntelaar kept their rivals in the gameBorussia Dortmund remain hot on the heels of Bundesliga leaders Bayern Munich after a thrilling 3-2 victory over Schalke in the 147th Revierderby.
Shinji Kagawa, Matthias Ginter and Pierre-Emerick Aubameyang all found the net for the hosts in Sunday's clash at Signal Iduna Park, with both of Schalke's goals coming from Klaas-Jan Huntelaar.
Although Schalke did manage to hit back quickly after Kagawa gave Dortmund a 30th-minute lead, they were undone again by Ginter just before the break and looked to be staring down the barrel when Aubameyang's 14th league goal of the season made it 3-1 early in the second half.
Huntelaar's 71st-minute reply made for a tense final quarter, but ultimately it was to be second-placed Dortmund's day as Thomas Tuchel's men hauled themselves to within five points of Bayern with a seventh consecutive win in all competitions.
The result extended Dortmund's fine Bundesliga start to nine wins from the opening 12 games and was all the more impressive bearing in mind they were denied the services of injured star Marco Reus. The opening exchanges were predictably frenetic and bruising, with Schalke duo Max Meyer and Huntelaar very fortunate to escape without punishment after hurling themselves into rash challenges within the first five minutes.
Despite the scrappy start, however, the capacity crowd never let the volume level drop and were rewarded as the game burst into life after 20 minutes.
Schalke goalkeeper Ralf Fahrmann was almost caught out by Aubameyang after taking a heavy touch in trying to control a back-pass, while at the other end, Dennis Aogo picked out Leroy Sane with a fine cross from the left, but the teenage midfielder fired wide from close range.
Having survived that scare, the hosts began to apply some sustained pressure and found a way through on the half-hour mark.
Ginter delivered a superb right-footed cross and, despite the close attentions of three taller defenders, Kagawa rose highest to power a downward header past Fahrmann.
The home fans had barely stopped celebrating, however, when Schalke equalised three minutes later.
Mats Hummels gave the ball away cheaply on the halfway line, Leon Goretzka sent Sane racing away down the right and he squared for the onrushing Huntelaar to find the net.
Undaunted, Dortmund swiftly got back on the front foot and deservedly restored their lead three minutes before the break.
Having supplied the assist for his side's first goal, Ginter scored the second himself, out-jumping Sead Kolasinac at the near post to nod home Henrikh Mkhitaryan's corner.
Seven minutes into the second half, Tuchel's men increased their lead, Gonzalo Castro finding Aubameyang at the end of an incisive breakaway and the in-form striker calmly slotting home his 22nd goal of the season in all competitions.
Moments later it could and should have been 4-1, this time Aubameyang turning provider as he squared for the unmarked Mkhitaryan, who was foiled by Fahrmann with the goal at his mercy.
The overworked Schalke goalkeeper was then called into spectacular action again after 69 minutes, this time to keep out a powerful header from Sokratis Papastathopoulos, who had rumbled forward to meet a Mkhitaryan corner.
The Greek defender was less impressive in his own box moments later, however, failing to deal with a regulation cross and allowing Huntelaar to net his second goal of the game and set up a tense finale.
But despite their best efforts, Andre Breitenreiter's men could not manage to find the equaliser.