Goals from Ibrahim Afellay in the 14th minute and Marco Höger in the 48th put Huub Stevens' Royal Blues in the driving seat and while Robert Lewandowski pulled one back for the hosts soon after, it was not enough to stave off Dortmund's first home league defeat in over a year.
Afellay joins the derby debutant scorers
After some tough early tackling in midfield on both sides, the game settled down into an evenly-balanced opening phase, notable above all for Dortmund's apparent adoption of an unusual 3-5-2 formation, with nominal stand-in left-back Kevin Großkreutz operating further up the pitch and Sven Bender effectively filling a slot between centre backs Mats Hummels and Neven Subotic.
Subotic it was who carved out the first half-chance of the contest in the 13th minute, with a somewhat fortuitous pass to Robert Lewandowski inside the box, but the Polish goalgetter was crowded out by the guest defence. As if prodded awake Schalke responded instantly, and to deadly effect. Jefferson Farfan played in a cross from the right, Bender's clearing header fell short and, more importantly, right at the feet of Afellay, and the Royal Blues' new Dutch frontman nailed his shot in off the inside of the post.
BVB attempted to battle back in their accustomed manner, but their near-neighbours were sticking well to their strategy, pressing high up the pitch and not allowing the champs to unfold their own dynamic attacking game. Their cause was helped by an unusual sluggishness on the part of the home side and half an hour in, coach Jürgen Klopp reverted to his standard 4-4-2, with Lukasz Piszczek taking over at left back.
The improvement seemed palpable within minutes, Marco Reus pulling a save out of S04 keeper Lars Unnerstall and Lewandowski beating the visitors' offside trap only for his control to let him down. Those half-chances aside however, Schalke saw out the rest of the half in comfort to go in at the break with a well-earned lead in a highly tactical encounter.
That advantage was promptly doubled within minutes of the restart, courtesy of a clinical breakaway. Klaas-Jan Huntelaar and Lewis Holtby combined from deep to free up Marco Höger and the holding midfielder ran clear to stroke the ball past Roman Weidenfeller, sending the away fans into seventh heaven. Klopp responded by bringing on a second striker, Julian Schieber, in place of Ivan Perisic, but the next chance was also Schalke's in the 54th minute, Joel Matip somehow contriving to miss the target from point-blank range after latching onto a Benedikt Höwedes knock-on from a corner.
Schalke hang hard
Instead of game, set and match to the Royal Blues, it was all up in the air again a minute later. Reus clipped a free kick into the box and Lewandowski got enough contact with the back of his head to plant it past Unnerstall - 2-1! Reus gave Uchida the slip and fired into the side netting not long after that as Dortmund sought to press home their momentum, but once again it proved short-lived.
The guests kept their nerve, and their shape, and continued to threaten on the break, not least when Afellay finished off a solo run with a shot that pulled a decent save out of Weidenfeller in the 71st minute. The clock ticked down on the contest to the same pattern, the Yellow-Blacks giving it their all to little effect and Schalke a threat on the breakaway to the very end. Left-back Christian Fuchs, forced Weidenfeller into action again in added time and right at the close Huntelaar passed up a great opportunity to make it 3-1. Victory, nonetheless, was Schalke's.
Line-ups and statistics