"The last few games have shown what Bayern can do," said Bayern coach Niko Kovac. "I want to praise Franck. He did exceptionally well."
Ahead of the month long winter break, Bayern cut the gap on pacesetters Borussia Dortmund to six points.
After an evenly contested half an hour at the Commerzbank Arena, Bayern broke through when Thomas Mueller found Robert Lewandowski in the box. He flicked the ball onto Ribery to tap home.
The former France international bagged his brace 11 minutes from time and Rafinha added the gloss in the closing seconds.
Christmas almost cancelled
At the other end of the table, there were defeats for the bottom three. Stuttgart, who are 16th, lost 3-1 at home to Schalke while 17th placed Hanover went down 1-0 at home to Fortuna Dusseldorf who ended Dortmund's unbeaten start to the season on Tuesday night.
The Hanover boss, Andre Breitenreiter, had threatened to cancel the Christmas break if his team did not deliver four points from their two last two league games of 2018 against Freiburg and Fortuna Dusseldorf.
They drew 1-1 with Freiburg on Wednesday. Following the defeat against Fortuna, Breitenreiter softened his original hard line but the squad will be in for training on 28 December nearly a week ahead of other scheduled returns for Bundesliga outfits.
"I am also giving up my holiday to shake off 2018 and make it better next year," said Breitenreiter after a 45-minute training session on Sunday.
"The situation is difficult for all of us. But if we take the right measures and stick together, I'm optimistic that we will stay in the league."
Nurnberg remain bottom with 11 points following their 10th defeat of the season. They lost to 1-0 to mid table Freiburg. Manuel Gulde got the only goal of the game in the 19th minute.