The Bavarians ended the two-year reign of Borussia Dortmund by clinching the title faster than any club in the league's 50-year history.
Bastian Schweinsteiger flicked the ball into the net with a neat backheel in the 52nd minute to lift Bayern to 75 points ahead of second-placed Dortmund, who beat Augsburg 4-2.
"It's a fantastic moment and I'm winning a league title after 23 years again," said coach Jupp Heynckes, who guided Bayern to the championship in 1989 and 1990 during his first stint as coach.
"I have won a few championships in my time as player and coach but never when it was still that cold," he said of the fastest title win in Bundesliga history.
"My players are now harvesting all the work they put in throughout the year. They put into action exactly what I told them."
Heynckes will make way for Spaniard Pep Guardiola at the end of the season by which time Bayern, who are chasing an unprecedented treble for a German club, might have added the Champions League and domestic Cup trophies.
Fresh from a 2-0 Champions League quarter-final, first leg victory at home to Juventus, Bayern should have taken the lead much earlier against Frankfurt, with Xherdan Shaqiri rattling the post with a low shot in the 10th minute.
David Alaba missed a penalty by firing against the same spot 15 minutes later as the visitors showed some nervousness.
But Germany international Schweinsteiger made sure of their 11th straight league win this year with his seventh goal of the campaign, turning in a superb Philipp Lahm cross after the full-back's burst down the right wing.
Bayern keeper Manuel Neuer needed to come to the rescue late in the game as sixth-placed Frankfurt, battling for a Champions League spot, poured forward.
"You feel that this team wants more," said club boss Uli Hoeness. "Now we want to win the Champions League and the German Cup. There will be time to celebrate at some point."
There was some singing and dancing on the pitch in Frankfurt but no big title party in Munich, as Bayern are focusing on the second leg at Juventus next week.
"We really wanted to win this and get the title out of the way," said Bayern captain Lahm. "There will be one or two beers that will be opened on the way back tonight. But we now want to focus on Juventus. It (the season) is not finished yet."
Bayern's 23rd league title covers their 22 Bundesliga crowns and a German national championship trophy in 1932.