Although Adrian Ramos pulled a goal back from the penalty spot midway through the second half, Franck Ribery’s 79th minute goal wrapped up the win in style and gave them the crown with seven games to spare.
Bayern would have been celebrating even had they lost, as the clash between local rivals Borussia Dortmund and Schalke ended goalless.
Pride and second spot was up for grabs in the 144th Revierderby, but neither team could make a breakthrough.
In-form Wolfsburg enhanced their own top-four hopes with a 3-1 win at Werder Bremen.
Junior Malanda and Ivan Perisic scored in the first ten minutes to give the visitors control. Sebastien Prodl pulled a goal back six minutes later, but Maximilian Arnold made the points safe for Wolfsburg ten minutes from time.
At the other end, bottom club Eintracht Braunschweig picked up a crucial three points with victory over European hopefuls Mainz – again by 3-1.
Mainz, who would have gone joint fourth with victory, remain seventh as a result of the defeat.