What you need to know:
- Reus, then Sancho both claimed their second goals inside a devastating four-minute spell just before the whistle.
- Freiburg moved up to fifth, a point above Bayern, with a 1-0 win at home to Wolfsburg thanks to a second-half winner from Jonathan Schmid while mid-table Augsburg enjoyed a 2-1 win at home to Mainz.
Bayern Munich dropped to sixth after Ramy Bensebaini's injury time penalty fired Bundesliga leaders Borussia Moenchengladbach to a 2-1 win over the reigning champions on Saturday.
A second straight league loss puts pressure on Hansi Flick, who has been put in charge until January and was tipped to see out the season as interim boss after winning his first five games.
Bayern, now seven points adrift in the title race, went ahead at Borussia Park when Ivan Perisic fired home just after the break, but defender Bensebaini headed Gladbach level with an hour gone.
The Algerian then struck his decisive soppage-time penalty after Bayern's Javi Martinez was sent off for a second yellow card.
There were wild scenes of celebrations from home fans at the final whistle of a game Bayern dominated for long stretches.
But like last week's 2-1 home loss to Bayer Leverkusen they only had themselves to blame as they squandered a string of chances.
Bayern had six clear first-half chances, two of which saw striker Robert Lewandowski fire wide.
They were denied the lead by goal-line technology on 29 minutes when Joshua Kimmich's shot slid under Yann Sommer's block, but the Gladbach goalkeeper scrambled and just managed to stop the ball fully crossing the line.
Bayern finally broke through when Perisic, a first-half replacement for injured Coretin Tolisso, hammered his shot on the turn to beat Sommer four minutes after half-time.
Surviving on less than 40 percent possession, Gladbach drew level on the hour mark against the run of play as they scored off their first clear chance.
Midfielder Jonas Hofmann whipped in a corner and Bensebaini powered his header past Bayern goalkeeper Manuel Neuer.
Gladbach gained in confidence, but the game turned in the 90th minute when Bayern defender Javi Martinez gave a penalty away and was sent off for a clumsy tackle on Marcus Thuram in the area.
The Spain international trudged off after being shown second a yellow card as Bensebaini showed nerves of steel to convert the penalty.
Elsewhere, RB Leipzig stay second after their 3-1 home win against Hoffeneheim as Timo Werner grabbed the opener, then netted a second-half penalty to leave the Germany striker with 15 league goals this season.
Midfielder Marcel Sabitzer scored Leipzig's late third goal before defender Erim Bicakcic pulled back a consolation goal for Hoffeheim just before the whistle.
Borussia Dortmund eased the pressure on coach Lucien Favre to go third with a 5-0 home romp against Fortuna Duesseldorf, who drop into the bottom three, as England winger Jadon Sancho and club captain Marco Reus both scored twice.
Having ground out a 2-1 win with 10 men at Jurgen Klinsmann's relegation-threatened Hertha Berlin last weekend, Dortmund ran riot after the break at home with four second-half goals.
Reus put the hosts ahead at Signal Iduna Park, then combined with Sancho and Thorgan Hazard after the break to shred Duesseldorf's defence.
Sancho had a goal ruled out for offside on 52 minutes, but set up Hazard four minutes later, before scoring Dortmund's third goal with an hour gone after combining with Reus.
Reus, then Sancho both claimed their second goals inside a devastating four-minute spell just before the whistle.
Freiburg moved up to fifth, a point above Bayern, with a 1-0 win at home to Wolfsburg thanks to a second-half winner from Jonathan Schmid while mid-table Augsburg enjoyed a 2-1 win at home to Mainz.