Bayern Munich opened a four-point lead at the top of the Bundesliga on Saturday with a 2-1 home win over Freiburg, who suffered their first defeat in any competition this season.
Second-placed Borussia Dortmund later missed the chance to trim Bayern’s lead when they lost 2-1 at RB Leipzig.
In Munich, Leon Goretzka put Bayern ahead with half an hour gone at the Allianz Arena before Robert Lewandowski hit his 13th Bundesliga goal this season with 15 minutes left.
Bayern have scored 100 goals this calendar year, one short of the record for a German club, set when Cologne netted 101 times in 1977.
Freiburg, who are third in Germany’s top flight, caused a few nervous looks in the Bayern ranks when substitute Janik Haberer finally beat Manuel Neuer in stoppage time.
Bayern head coach Julian Nagelsmann was pleased with the “very important win against a direct competitor”.
“Freiburg defended well in the box, in the end, two goals were enough, but we could have scored more,” added Nagelsmann.
Under Christian Streich, the longest-serving current Bundesliga coach, Freiburg have this season beaten Champions League teams Dortmund and Wolfsburg and held RB Leipzig to a draw.
Yet they failed in their bid to claim a first away win against Bayern, instead suffering a 19th defeat, plus three draws, in 22 attempts.
One of the visitors’ best opportunities fell to striker Lucas Hoeler, who got in behind the defence early on, but fired wide of the post.
Freiburg have the league’s best defence, which has conceded only nine goals in 11 games.
Yet Bayern took a deserved lead on half an hour when Thomas Mueller’s pass into the box was swept inside the post by Goretzka.
Freiburg then held firm until Lewandowski, who marked his 100th Champions League appearance in midweek with a hat-trick in the 5-2 win over Benfica, struck his 22nd goal of the season in all competitions.
Leroy Sane fired the ball towards goal and Lewandowski lunged to steer the shot around Mark Flekken.
Haberer claimed Freiburg’s consolation goal when he beat Bayern defender Tanguy Nianzou and swept the ball into the far corner.
Later, Dortmund captain Marco Reus was left fuming after his side lost with barely a fight at Leipzig.
“We weren’t on the same level as them, in terms of our aggression or in the opening exchanges,” grumbled Reus, who scored Dortmund’s second-half equaliser.
“Overall, it was too little. The truth is we simply didn’t deserve to win.”
On the eve of the match, Leipzig coach Jesse Marsch had declared it’s “time for us to beat a top team”.
His players duly delivered and took an early lead when Christopher Nkunku rounded Dortmund goalkeeper Gregor Kobel and slotted into an empty net.
Dortmund pulled a goal back through Reus, but Leipzig restored their lead when Nkunku and Dominik Szoboszlai set up Yussuf Poulsen to tap in the winner before the hosts also had a Nordi Mukiele goal disallowed.
“It was an important win. There were a lot of good individual performances and there is still a lot of work to do, but I am very proud of the team,” said Marsch.
The result lifts Leipzig to fifth, a point behind Wolfsburg whose new head coach Florian Kohfeldt earned his third straight win since replacing Mark van Bommel, with a 1-0 victory at home to Augsburg.
Former Manchester City forward Lukas Nmecha celebrated his first call up for Germany with the winning goal by heading in off the post.