The Bundesliga leaders were made to work hard for all three points but a controversial penalty shout with 14 minutes remaining effectively decided the game in their favour
The Bavarians opened the scoring through Franck Ribery right at the end of an open and absorbing first half and although Anderson Bamba headed against the bar for the visitors, Jupp Heynckes' men ultimately doubled their advantage when David Alaba converted a controversial penalty on 76 minutes.
Bayern had begun the game brightly, as if intent to put the upstarts from Frankfurt firmly in their place. Indeed, the hosts could have been ahead inside eight minutes, Toni Kroos breaking down the left-hand side before dragging a ball across the six-yard box which a stretching Arjen Robben managed to get on the end of but could only divert into the side netting.
An offside Claudio Pizarro then stupidly got in Alaba’s way after the Austrian had been slipped in on goal by Ribery. Alaba then tested Kevin Trapp with a well-struck free kick before Ribery was presented with a golden opportunity to open the scoring 26 minutes in.
Pizarro held the ball up well before feeding the supporting Kroos, who played a sublime first-time ball over the top for Ribery. The Frenchman did almost everything right but Pratt managed to keep out his low strike with his outstretched left leg.
Perhaps buoyed by that let-off, Frankfurt began to impose themselves on the proceedings and Stefan Aigner, Sebastian Rode and Alexander Meier all wasted excellent headed openings during a purple patch around the half-hour mark.
Bayern, though, raised their game just before the break and after Daniel van Buyten had had a goal ruled out for offside, Ribery finally broke the deadlock, side-footing home at the far post after Javi Martinez had sprung the offside trap following a storming run down the right wing by Alaba.
The Bavarians could even have doubled their advantage before the half-time whistle blew but Trapp produced excellent stops to deny both Kroos and Ribery.
However, Frankfurt regrouped during the interval and came agonisingly close to levelling matters five minutes into the second period, Anderson heading against the bar after getting on the end of Meier’s flick-on.
That scare sparked Bayern back into life, though, and Kroos blazed wastefully over the bar after latching onto Ribery’s clever through-ball. The game remain delicately poised, though, until Alaba converted from the spot with 14 minutes remaining after Vadim Demidov had been harshly penalised for felling Bastian Schweinsteiger in the area.
Unsurprisingly, Frankfurt kept fighting but they were unable to find a route back into the game and Bayern saw the game out quite comfortably to make it 10 wins from 11 Bundesliga games this season, thus putting 10 points between themselves and their opponents.