Bayern made it 10 victories out of 10 in all competitions this year thanks to a late winner from Jerome Boateng.
Boateng headed home in the 86th minute for Bayern. Mathis Bolly and Andreas Lambertz had twice put promoted Fortuna ahead but Thomas Mueller and Franck Ribery replied each time for the runaway leaders.
Bayern have 66 points from 25 games while champions Dortmund have 46, one more than Leverkusen.
Schalke's win took them up to fourth, the Champions League playoff spot.
Julian Draxler and Klaas-Jan Huntelaar put Schalke 2-0 ahead after 35 minutes. Dortmund pulled one back through Robert Lewandowski just before the hour as they dominated the second half.
"We lost 2-1, what can I say?", Dortmund coach Juergen Klopp told Sky Sports. "Everyone in our team understands what a derby means."
Asked what it meant to lose two derbies in a season, he replied: "I have no words for that," and walked off.
Draxler swept home Atsuto Uchida's low cross from the right in the 12th minute as Schalke tore into their arch-rivals.
Dortmund's Mario Goetze cleared off the line and Draxler had another effort blocked by keeper Roman Weidenfeller before Dutchman Huntelaar, left unmarked at the far post, headed in another Uchida cross.
Jefferson Farfan wasted an excellent chance to put Schalke further ahead early in the second half, shooting weakly at Weidenfeller, and it changed the course of the game.
Dortmund fought back and had one goal disallowed before a clinical finish by Lewandowski gave them hope.
The Pole then took centre stage in a pulsating finale as he had a shot blocked by team mate Goetze and then wasted a golden chance to equalise when he had a shot stopped by keeper Timo Hildebrand.
Schalke, who won the first Ruhr derby of the season by the same score, were always dangerous on the break and Farfan wasted another chance by volleying wildly over the bar at the far post with the goal at his mercy.
Werder Bremen edged away from the relegation zone with a 1-1 draw at Borussia Monchengladbach.
Striker Peniel Mlapa opened the scoring on 72 minutes for ‘Gladbach, only for Serbian midfielder Aleksandar Ignjovski to equalise five minutes later.
Bremen are now eight points clear of Augsburg, who occupy the relegation play-off spot above Hoffenheim and Greuther Furth.
Wolfsburg produced the day's best goals as they came from behind to triumph 5-2 at Freiburg.
Vieirinha rifled in a stunning 30-metre volley to put the visitors 2-1 ahead but was quickly upstaged by team mate Ivica Olic who met a low cross first time to score with an incredible bicycle kick.
Third-placed Bayer Leverkusen lost 1-0 at Mainz, Andreas Ivanschitz converting a penalty controversially awarded for handball, while Greuther Fuerth remained without a home win as they crashed 3-0 against Hoffenheim.