Top scorer Robert Lewandowski scored twice, including a second-half penalty, to guide the German champions to a crucial 3-2 victory at title rivals Borussia Dortmund on Saturday and a four-point lead at the top of the Bundesliga.
The Pole opened his account in the ninth minute to level after Dortmund had taken an early lead through Julian Brandt, and then converted a controversial 77th-minute spot kick to seal victory with his 16th goal of the campaign.
Kingsley Coman had put Bayern in front a minute before the break before Erling Haaland equalised for the hosts with a superbly curled effort in the 48th.
In an action-packed encounter, Dortmund coach Marco Rose was sent off with a second booking for dissent following the penalty decision.
Bayern, chasing a record-extending 10th league crown, move up to 34 points with this sixth straight league win over their rivals, leaving Dortmund in second place on 30. Bayer Leverkusen are in third place on 27.
"I think we deserved to win but I also understand the discussions over the two penalty situations," Bayern coach Julian Nagelsmann said.
Dortmund were fuming about the penalty decision in favour of Bayern after having been denied a VAR review in a penalty claim of their own earlier.
"It was a very tight game that was worthy of its reputation. We could have scored more in the first half," Nagelsmann said. "Dortmund did it well early in the second half but we found our rhythm again and had good control."
The game instantly lived up to its billing with Haaland charging through after two minutes and keeper Manuel Neuer clearing the ball just in time.
Brandt did it better a little later, peeling off his marker and thundering in for the lead.
Bayern drew level four minutes later when defender Mats Hummels clumsily tried to clear a high ball before Thomas Mueller got it but the ball fell for Lewandowski.
In a hugely entertaining, end-to-end first half in front of a limited 15,000 crowd, both teams had their share of opportunities, with Haaland firing just wide on the half-hour mark and Coman twice coming close for the visitors.
The winger did get on the score sheet a minute before the break when after another sloppy Dortmund clearance the Frenchman fired in to beat keeper Gregor Kobel.
Three minutes after the restart it was Dortmund's turn to come back, with Jude Bellingham laying the ball off for Haaland on the left and the Norwegian bagging his 51st goal in his 51st Bundesliga match with a delightful curled shot into the top corner.
But the controversial Hummels handball decision following a lengthy VAR review allowed Lewandowski to score his 26th goal in all competitions against his former club.
Vinicius Jr shines in Real Madrid win at Real Sociedad
Real Madrid secured a statement 2-0 win against Real Sociedad on Saturday after travelling north to San Sebastian as they moved eight points clear at the top of La Liga.
With striker Karim Benzema forced off after 17 minutes with a hamstring injury, it was once again Vinicius Jr who stood out by scoring his 10th goal of the season and driving the home side's defence crazy with his boldness and audacity.
Real's man of the hour, 21-year-old 'Vini' has been of one of the standout players in Europe during this campaign and is two goals behind Benzema at the top of La Liga’s scoring charts.
Luka Jovic, who replaced the injured Benzema, enjoyed his best game as a Real Madrid player, assisting Vinicius for the first goal and scoring the second with a diving header.
It was Real Madrid's sixth consecutive league win and Real Sociedad's first home loss of the season.
Real have 39 points, ahead of Sevilla on 31, Real Betis with 30 and Atletico Madrid on 29 with fifth-placed Sociedad. Sevilla, who beat visitors Villarreal 1-0, and Atleti, who lost 2-1 at home to Mallorca, have a game in hand on their rivals.
Atletico sunk by Kubo stoppage-time goal for Mallorca
Atletico Madrid conceded a goal by Mallorca's Takefusa Kubo in added time in a shock 2-1 LaLiga home defeat on Saturday that will be remembered on the Mediterranean island for years.
The loss leaves Atletico in fourth place on 29 points, seven adrift of leaders Real Madrid who have also played 15 games and visit fifth-placed Real Sociedad in the late match.
In an electrifying match in the Spanish capital, Atletico went in front through a Matheus Cunha strike in the 68th minute.
However, with 10 minutes left and Atletico looking in control of the match, Mallorca equalised with a header from Argentine defender Franco Russo, who outjumped Mario Hermoso from a free-kick and finished with precision past Jan Oblak.
Eight of the 15 goals conceded by Atletico this season have come when they have been defending set-pieces.
As the clock ticked down in stoppage time substitute Kubo, on loan at Mallorca from Real Madrid, received a perfect through pass from Angel Rodriguez behind the defensive line and the 20-year-old Japan striker calmly slotted the ball under Oblak.