Pierre-Emerick Aubameyang continued his remarkable goalscoring record in the Bundesliga but Borussia Dortmund were left to rue missed chances as Schalke snatched a 1-1 draw in the 150th Revierderby.
Aubameyang netted for the 24th time in as many top-flight outings this term early in the second half but a far more unlikely goal hero would have the final word.
Thilo Kehrer epitomised Schalke's battling spirit as they were outclassed for long periods and the 20-year-old defender snaffled the chance to bring up a maiden professional goal in the 77th minute – crashing a low shot beyond Roman Burki at the near post to spark boisterous celebrations inside the Veltins Arena.
Ousmane Dembele was a thorn in Schalke's side throughout and hit the post with the score at 1-0, while Thomas Tuchel's bright and inventive attack were arguably guilty of over-embellishing when they should have sealed the points.
Kehrer was less wasteful and Dortmund were left hanging on for a point in stoppage time, when Marc Bartra avoided punishment for handling in the area.
Tuchel's men, who stay fourth behind Hoffenheim, made a high-tempo start when Dembele embarked upon a mazy run into the box from the Schalke right but was eventually crowded out.
Schalke goalkeeper Ralf Fahrmann was out sharply when Aubameyang released Dembele with a cute pass into the area – Shinji Kagawa electing not to shoot on the rebound and the chance was gone.
Coke, making his long-awaited Schalke debut at right-back following a knee ligament injury, might have hoped for a less lively opponent than Dembele, who left him on the seat of his shorts and curled narrowly wide with half an hour played.
Aubameyang stole in behind Schalke captain Benedikt Howedes but Fahrmann stood firm to keep out his shot from the angle and Markus Weinzierl's team remained on terms at the end of a first half in which they were second best.
Guido Burgstaller shot tamely on the turn when Schalke ventured forward in the 53rd minute but Dortmund sprung immediately up the other end to open the scoring, with their fluent front three all involved.
Kagawa stayed onside to collect Dembele's well-weighted throughball and selflessly squared to leave Aubameyang with a tap-in.
The Gabon star donned a mask in celebration – more Mexican lucha libre wrestling than his usual Spiderman number– and was booked for his troubles.
Howedes almost brought Schalke level with a powerful header from Daniel Caligiuri's corner that Burki pushed off the goalline.
The Germany international was howling at his defensive colleagues shortly afterwards when Dortmund should have doubled their lead – Aubameyang making an ill-advised attempt to replicate Kagawa's earlier generosity and his pass for Dembele was cleared.
Dortmund's brilliant teenage winger almost had the goal his endeavours deserved in the 74th minute when he side-footed against the inside of the post from the left channel, before having the audacity to send in a 'rabona' cross on the rebound.
But Schalke retained their threat on the break and from set-piece situations and Weinzierl saw his side's grit rewarded 13 minutes from time.
Leon Goretzka's backheel was wonderfully judged, straight into the path of Kehrer who finished with the poise of a veteran striker to spark jubilant scenes.
There was anger at the end for Weinzierl, when he was sent to the stands for protesting too vociferously for handball against Bartra, but the Schalke boss could reflect on a job well done.
Key Opta stats:
- Dortmund have won only two of the last 9 away games (4 draws, 3 losses) and collected 13 points less in away games (17) than at home (30).
- Dortmund have scored in their last 17 Bundesliga matches, which is the longest current streak in the league.
- Only for the second time this season, Dortmund lost points after leading (first time was on matchday 18 in Mainz, 1-1).
- Pierre-Emerick Aubameyang scored the first goal of the game for the seventh time this season, more often than any other player.
- Dortmund attempted only seven shots, fewer than in any other game this season.