RB Leipzig ended Borussia Dortmund's club-record 41-game unbeaten run at home in the Bundesliga.
Leipzig's 3-2 win was league-leaders Dortmund's first Bundesliga defeat at the Westfalenstadion since a 1-0 loss to Bayern on April 4, 2015 -- the league's fifth longest unbeaten home run since its formation in 1963.
Dortmund did not have long to wait before Pierre-Emerick Aubameyang stayed cool to score inside the far post in the fourth minute.
Marcel Sabitzer answered minutes later with a header from close range, and Dortmund's defence was at fault again when Bruma eluded Jeremy Toljan to set up Yussuf Poulsen.
It got worse for Dortmund after the break when Sokratis was sent off for bringing down Jean-Kevin Augustin, who dusted himself off to score the ensuing penalty.
Leipzig's Stefan Ilsanker was sent off minutes later with two yellow cards in quick succession, both for fouls.
Aubameyang's second, a penalty, set up a frenetic finale, but Andrey Yarmolenko missed the best chance to equalise.