Borussia Dortmund missed the chance to close the gap on Bundesliga leaders Bayern Munich as Marco Rose’s side fell to defeat at RB Leipzig, who climb to fifth.
Christopher Nkunku continued his rich vein of form with the opener, latching onto Josko Gvardiol’s through ball, rounding Gregor Kobel and tapping into an empty net in the 29th-minute for his 11th goal of the season.
It was no less than Leipzig deserved. Just minutes earlier, they had fired a warning shot when Nkunku, after being released behind the defence, was denied by the on-rushing Dortmund goalkeeper and Dominik Szoboszlai could only fire the rebound wide.
Dortmund without Sancho for 'brutally difficult' City quarter-final
Dortmund’s first-half performance was littered by misplaced passes and passive defending. Their only chance of the opening 45 minutes fell to Jude Bellingham, whose shot was blocked by his teammate Donyell Malen.
Leipzig had the perfect opportunity to double their lead just after the restart when Nkunku set Yussuf Poulsen up on a plate but the Dane inexplicably failed to convert from point-blank range.
And just a moment later, Dortmund made them pay. Thomas Meuiner moved infield before playing a beautifully-weighted pass into the feet of captain Marco Reus, who finished with aplomb.
Nkunku almost restored Leipzig’s advantage, hitting the post following an outrageous piece of skill, but Poulsen would make no mistake when he poked home at the back post to make it 2-1 as Nkunku turned provider.
It would prove decisive as Leipzig inflicted a third defeat on Dortmund, who remain second but four points adrift of Bayern, who defeated SC Freigurg 2-1 earlier on Saturday.
TALKING POINT - Without Haaland, Dortmund's title challenge looks weak
While Dortmund had won all four of their previous league games in the absence of Erling Haaland, missing a player of such immense quality was always likely to catch up with them. Leipzig have largely flattered to deceive this season, but at their best, they can trouble anyone, and unfortunately for Rose, they were pretty close to their best this evening.
Dortmund had the look of a beaten side from the outset. They failed to get into any kind of rhythm, and it’s not only the goals and attacking threat from Haaland they missed, it was also his work rate and pressing from the front. With the Norwegian nowhere close to a return to action, Rose has to find solutions, otherwise his side will only fall further behind Bayern Munich.
Meanwhile, after guiding Leipzig to their first win over Dortmund in four years, boss Jesse Marsch will be hoping this will act as a springboard as they aim to kick-start their season.
MAN OF THE MATCH – Christopher Nkunku (RB Leipzig)
Once again the 23-year-old was Leipzig’s hero, opening the scoring and laying on an assist. Had luck been on his side, he might have finished with a hat-trick and another assist. With no disrespect to Leipzig, he has put himself in the shop window.
RB Leipzig: Gulacsi 6, Mukiele 8, Simakan 6, Gvardiol 8, Henrichs 6, Adams 7, Haidara 7, Angelino 6, Nkunku 9*, Szoboszlai 7, Poulsen 7.. subs: Forsberg 5, Olmo N/A, Laimer N/A, Silva 5.
Dortmund: Kobel 6, Akanji 6, Hummels 6, Pongracic 4, Meunier 7, Bellingham 5, Witsel 5, Hazard 5, Brandt 5, Reus 7, Malen 5.. subs: Zagadou N/A, Moukoko 5, Reinier N/A.
13’ - Chances! Leipzig, for the first time this evening, create a clear opportunity! Nkunku is played through on goal but Kobel is off his line early, makes himself big and makes the save. From the rebound, Szoboszlai drags his shot wide from the angle.
29’ - GOAL! RB Leipzig 1-0 Dortmund (Christopher Nkunku): That has been coming! And it's the in-form Nkunku who gives Leipzig their deserved lead! He's on his toes to race onto Gvardiol's throughball, takes a touch to round the onrushing goalkeeper and taps it into an empty net!
52’ - GOAL! RB Leipzig 1-1 Dortmund (Marco Reus): And just like that, Dortmund make the hosts pay for their wastefulness! They've barely had a chance this evening but Reus - Dortmund's Mr Reliable - only needs a sight of goal to draw them level. Meunier moves infield and plays a beautifully-weighted pass into the feet of the captain who finishes with aplomb!
68’ - GOAL! RB Leipzig 2-1 Dortmund (Yussuf Poulsen): Leipzig deservedly restore their advantage! Poulsen makes no mistake this time as he pokes in at the far post. The creator? Nkunku, of course!
Marco Reus scored his 102nd league goal for Borussia Dortmund, moving level with Stéphane Chapuisat - only three other players have scored more often for the club in Bundesliga history.
Leipzig take over lead in Bundesliga with win at Freiburg
Exclusive: United eye cut-price Sancho for £50m in summer