Draxler and Huntelaar were the heroes for the home side as they battled to a narrow victory over Klopp's men, who could not recover from a devastating first-half show
Goals in the opening 45 minutes from Julian Draxler and Klaas-Jan Huntelaar set the Champions League hopefuls on the path to victory, and although Robert Lewandowski pulled one back for the visitors Schalke did not falter and stayed strong to claim all three points.
Dortmund enjoyed the greater possession at the start of Saturday's derby clash, but Jurgen Klopp's men struggled to make the most of the ball and were ineffective against a resolute backline. Schalke, meanwhile, sat back and waited for the chance to counter on the break; and they were soon rewarded as the home team surged into the lead.
With just 12 minutes on the clock, Marco Hoger's well-placed pass opened up the game for Atsuto Uchida on the right flank. The Japanese full-back was impeccable in controlling the ball, and his low cross found Julian Draxler in the box, who finished expertly on the half-volley to give Schalke the advantage. A rattled Dortmund side almost found themselves two down immediately afterwards, and were grateful to Roman Weidenfeller who came up with a big save to deny Huntelaar from point-blank range.
There were chances for both teams to add to the scoresheet, in what was a frenetic, fiercely contested first half. Lukasz Piszczek released Jakub Blaszczykowski behind the defence, but the Polish forward dragged his effort just wide of the post to squander the opportunity for the equaliser. At the other end, Dortmund's attacking starlet Mario Gotze suddenly found himself thrust into the role of defensive saviour, clearing off the line to stop Joel Matip's header from doubling Schalke's lead.
It was a momentary reprieve, however, as BVB were once more punished for some slack marking in their own area. Uchida was once more the architect on the right and with Dortmund's centre-backs nowhere to be found, Huntelaar gleefully took advantage of the space with a towering header that doubled the hosts' lead.
Robert Lewandowski then had the misfortune of seeing his goal ruled out for offside, but the visitors were left reeling at the end of a first half where their rivals made the most of their chances.
Jefferson Farfan had enjoyed an impressive opening 45 minutes, and the Peru international had a great chance to add a third and end the game as a contest on receiving the ball unmarked at the far post. The forward did not connect well with the shot, however, and Weidenfeller breathed a sigh of relief as the effort went straight at the keeper for a comfortable save.
Sven Bender, meanwhile, thought for a moment that he had reduced the deficit after bundling a scrappy ball into the net; but for the second time in the match the goal was ruled out for BVB, this time for a push in the build-up.
With just over 30 minutes to play, Dortmund were thrown a lifeline. Playing once again on the back of the Schalke defensive line, Lewandowski this time judged his run to perfection and the offside flag stayed down as he received Bender's pass. One-on-one, the Polish star kept his cool to slide the ball past Timo Hildebrand and bring his side back into the match.
The goal was the cue for BVB to throw everything into attack, as they desperately sought something from the encounter.
The home side, however, stayed strong at the back, and continued to pose a threat on the counter. It took another fine save from Weidenfeller to stop Teemu Pukki adding a third as Dortmund left more and more men upfield.
Farfan was then left with his head in his hands, blazing over from close range after being handed a rebound that just had to be the game's deciding strike.
Thankfully for Schalke that miss did not come back to haunt them and they move into fourth spot, while Dortmund remain in second place.