Bayern bag tenth consecutive victory
The Bavarians raced into a 3-0 lead in less than an hour as they notched their 10th successive win in all competitions - a run which started on November 25 against Maccabi Haifa in the Champions League - and avenged last season's 5-1 defeat at the same ground.
Leverkusen, unbeaten in the league, were held 1-1 at lowly VfL Bochum after surrendering a half-time lead.
The two top teams have 45 points from 21 games but Leverkusen lead on goal difference.
Third-placed Schalke 04 were held to a goalless draw at Freiburg and Hamburg SV, in fourth, drew 3-3 at Cologne.
On another freezing afternoon, Bayern needed only two minutes to go ahead at Wolfsburg when Bastian Schweinsteiger released Thomas Mueller down the left and he cut the ball back for Dutchman Arjen Robben to score with a first-time left-footer.
Bayern went further ahead in the 26th minute when defender Daniel van Buyten netted with a diving header at the far post after the defence failed to clear a corner.
The third goal came when Robben's pass left Mueller with only Andre Lenz to beat and, after the keeper parried, Ribery flicked the ball over him and into the net despite Wolfsburg defender Andrea Barzagli getting a touch.
Wolfsburg, without a win in 10 games, were thrown a lifeline in the 66th minute when Ribery tripped Sascha Riether inside the box but Grafite's penalty was smothered by Bayern goalkeeper Hans-Joerg Butt.
Grafite, who in the same fixture last year scored one of the most memorable goals of the season, grabbed a 90th-minute consolation for the champions who are 12th on 25 points.
Leverkusen, aiming for a fourth straight win since the winter break, went ahead through Switzerland striker Eren Derdiyok on the stroke of halftime.
Slovenia forward Zlatko Dedic equalised in the 68th minute with a cool finish after an incisive pass by Lewis Holtby.