Three early goals meant title hopefuls Bayer Leverkusen returned from the Bundesliga's winter break with victory at Borussia Dortmund to maintain the pressure on leaders Bayern Munich.
Dortmund had not suffered a home league defeat this season going into Friday's game, but were swiftly put on the back foot when Nathan Tella opened the scoring after just 24 seconds by expertly smashing home on the half-volley from the edge of the box.
The hosts were soon dealt another blow when Patrik Schick slid in to prod a low Piero Hincapie cross past keeper Gregor Kobel after seven minutes.
England Under-21 winger Jamie Gittens gave a glimmer of hope to a Dortmund side depleted by injury when he scooped the ball over Lukas Hradecky four minutes later after Leverkusen failed to clear their lines. It was his 10th goal of the season in all competitions.
Yet Dortmund – who have been underwhelming this season and are firmly out of the title race – were soon two goals behind again when Schick got his second, tracking a low ball from Jeremie Frimpong and driving home at the far post.
A late fightback saw Serhou Guirassy reduce the deficit from the penalty spot after Edmond Tapsoba was ruled to have fouled Julien Duranville with an outstretched arm after a video assistant referee (VAR) check.
However, despite controlling more than 70% of the possession and having more opportunities than Leverkusen, Dortmund were unable to find a way to salvage any points.
The result left Leverkusen a point behind leaders Bayern Munich in the table, having played a game more, while Dortmund stand sixth and 11 points off top spot.