With an own-goal from Jeffrey Bruma as well as strikes from Robert Lewandowski and Serge Gnabry, Bayern beat Schalke 3-1 at the Allianz Arena a few hours after Dortmund squandered a three goal lead to draw 3-3 with Hoffenheim.
Goals from Jadon Sancho and Mario Goetze gave Dortmund a 2-0 lead at half-time.
When Raphael Guerreiro added the third after 66 minutes, it appeared that Lucien Favre's men were on their way to their 16th win in 21 Bundesliga games.
But in the final 15 minutes, Hoffenheim hit the heights while Dortmund drooped. Algeria international Ishak Belfodil bagged a brace for the visitors either side of Pavel Kaderabek's strike.
"When you throw away a lead like that at home, it's always bitter," said Goetze, who came off after 82 minutes with the score at 3-1. "We were really good for long periods and it's hard to accept the final result."
Bayern are on 45 points after 21 games. Borussia Moenchengladbach are third with 42 points after Hertha Berlin beat them 3-0.
In the drop zone of the 18 team division, Nicolai Mueller scored both goals as bottom-of-the-table Hanover beat 17th placed Nuremberg 2-0.
The defeat sent Nuremberg to the the foot of the Bundesliga with 12 points after 21 games. Nuremberg have 14 points from their 21 outings.
Stuttgart, who are 16th with 15 points, play on Sunday at Fortuna Dusseldorf - the the only team to have beaten Dortmund in the Bundesliga this season.