The Bavarians recalled Lucas Hernandez and Kingsley Coman from the 3-0 victory over Arminia Bielefeld, whereas Dortmund missed defender Mats Hummel due to injury.
It all but took the host 15 minutes to go ahead as Serge Gnabry brought a loose ball on the edge of the area under control and beat goalkeeper Marwin Hitz with a powerful finish.
Dortmund received a big chance to go level minutes later from a through ball by Julian Brandt to Erling Braut Haaland, who went clear and opened an angle only to go wide of range.
Bayern appeared to have gone two goals up just before the closing quarter of the half after Gnabry finished off a misplaced ball from an unmarked position, but the offside flag went up.
The Bavarians still went and doubled their lead ten minutes to halftime as Robert Lewandowski finished off a loose pass from Thomas Muller following a poor clearance from Dan-Axel Zagadou.
Dortmund reduced the advantage from the penalty-spot five minutes in the second half when Emre Can guided Manuel Neuer the wrong way after Joshua Kimmich fouled Marco Reus.
Another glaring opportunity presented itself to the Black and Yellow minutes apart when a ball into space by Haaland spotted Reus, who couldn't beat Neuer.
With Jamal Musiala on for Gnabry, the Bavarians regained momentum in the latter exchanges and could've had a third through Lewandowski's close-range shot but Hitz saved.
Bayern put the clash to bed seven minutes from time as Musiala finished off a rebound in the area after Hitz failed to hold onto his initial shot.
The Bavarians controlled the closing minutes and bagged the win and also the league title for the tenth consecutive time.