Borussia Dortmund failed to take advantage of Bayern Munich's 1-1 home draw against Hoffenheim on Saturday, conceding a last-gasp equaliser after blowing a two-goal lead against 10-man Stuttgart.

Bundesliga leaders Bayern led through a first-half goal from Benjamin Pavard, but had to settle for a point as Hoffenheim equalised in the second half through an Andrej Kramaric free-kick.

Dortmund were 2-0 ahead in Stuttgart when Konstantinos Mavropanos received a second yellow card, but the hosts hauled themselves level in a dramatic finish.

Gio Reyna fired Dortmund back in front three minutes into injury time only for Stuttgart to snatch a 3-3 draw courtesy of Silas, who scored with virtually the last kick of the game.

The results left Bayern still two points clear of Dortmund at the top with six games to play.

Bayern came into their match after a tumultuous week, forward Leroy Sane sporting a visible mark on his upper lip after a confrontation with Sadio Mane, for which the latter suspended.

Pavard gave his side an early lead, tapping in from close range after 17 minutes.

With Bayern in cruise control, coach Thomas Tuchel took off Sane, Leon Goretzka and Kingsley Coman, with Wednesday's return leg against Manchester City in mind.

Hoffenheim took the initiative and equalised after 71 minutes, Kramaric curling a perfect free-kick from well outside the box past Yann Sommer.

Tuchel said he was surprised with his side's lacklustre response after being thrashed 3-0 against Man City. 

"I thought we'd play with anger in the belly. That was not the case... 

"We need a different spirit - and quickly."

Dortmund's 'stupid' collapse

In Stuttgart, Dortmund's Sebastien Haller opened the scoring midway through the first half, hammering in via the underside on the crossbar from a Donyell Malen cross.

Malen doubled the visitors' lead minutes later, gliding a low shot into the corner of the net, his fourth consecutive game with a goal. 

Despite going a man down late in the first half when Mavropanos was sent off, Stuttgart continued to push forward.

Tanguy Coulibaly pulled one back for Stuttgart with 12 minutes to go against an increasingly nervous-looking Dortmund.

Stuttgart scored a second minutes later when Josha Vagnoman booted the ball home in a crowded penalty area to level the scores. 

The drama wasn't over and Dortmund thought Reyna had won them the game, but Silas popped up with a 97th-minute equaliser to drag Stuttgart back out of the bottom two.

Dortmund manager Edin Terzic, who said "it was hard to find words", told German media the result was worse than his side's early-season 3-2 home loss against Bremen, where they led 2-0 with one minute remaining. 

"We thought we'd already seen the stupidest thing this season after our late defeat against Bremen at home, but this tops everything.

"We missed a huge chance."

RB Leipzig kept their quest for Champions League football on track, coming from behind to beat Augsburg 3-2 at home, leapfrogging Union Berlin into third.

Augsburg hit the lead just five minutes in through Arne Maier, but Leipzig's Kevin Kampl equalised almost immediately.

Former Chelsea striker Timo Werner scored two goals in three minutes late in the first half to give the home side a 3-1 lead.

Elsewhere, Mainz drew 1-1 away at Cologne. Mainz took an early lead through Ludovic Ajorque, the French striker scoring his fourth goal in five league games.

Cologne hit back early in the second half through Dejan Ljubicic, picking up a valuable point.

In Saturday's late game, Eintracht Frankfurt host Borussia Moenchengladbach.