Bayern Munich returned to the top of the Bundesliga with a less than convincing 1-0 victory over lowly Arminia Bielefeld at the Allianz Arena.
Julian Nagelsmann's men were uncharacteristically wasteful in front of goal, as the visitors defended admirably, until the breakthrough came midway through the second half through Leroy Sane.
Sane struck from the edge of the area to score Bayern's 102nd and record-breaking Bundesliga goal of 2021, surpassing the number netted by Cologne in 1977.
Erling Braut Haaland scored on his return from injury for Borussia Dortmund in their 3-1 win at Wolfsburg to become the youngest player to reach 50 German Bundesliga goals.
The Norwegian, aged 21 years and 129 days, struck an 80th-minute volley after coming on for his 50th league appearance.
Wout Weghorst had given Wolfsburg the lead before an Emre Can penalty and Donyell Malen effort turned the game in Dortmund's favour, with Haaland's strike briefly putting them top of the table.
It was raining goal at the Trolli-Arena, where bottom-of-the-table Greuther Furth's miserable campaign continued with a 6-3 home defeat to Hoffenheim.
The hosts actually led and were level at 2-2 early in the second half but Ihlas Bebou's hat-trick and Georginio Rutter's double, combined with Marco Meyerhofer's own goal saw Hoffenheim run away to victory.
Third-placed Freiburg continue to stutter after slipping to a third straight defeat. They led at Bochum through Philipp Lienhart's strike but the hosts came back for a 2-1 success with goals from Sebastian Polter and Milos Pantovic.
Dejan Ljubicic, Mark Uth, Ondrej Duda and Sebastian Andersson all netted second-half goals in Cologne's 4-1 home victory against Borussia Monchengladbach, while Hertha Berlin and Augsburg drew 1-1.
Inter Milan remain hot on the heels of Serie A leaders Napoli after a 2-0 win at Venezia.
Hakan Calhanoglu's strike lte in the first half set Inter on their way, before Lautaro Martinez made sure of the victory with a goal from the penalty spot deep into injury time.
Simone Inzaghi's side were far from their best but were well worthy of the three points with a dominant display in Venice, with the success moving them to within a point of Napoli, who Inter beat last weekend.
Atalanta won away at Juventus for the first time since 1989 thanks to Duvan Zapata's 28th-minute strike.
The victory kept Gian Piero Gasperini's side firmly in the title chase, as they remained fourth in the table and just four points behind leaders Napoli.
Juventus, meanwhile, have now lost five times in the league and are eighth in the standings. The closest they came to a goal on Saturday was when Paulo Dybala's late free-kick hit the crossbar.
Goals from Filippo Bandinelli and Andrea Pinamonti in the final three minutes saw Empoli come from behind to win 2-1 and stun Fiorentina, who had looked on course for victory after Dusan Vlahovic put the visitors ahead.
Sampdoria also fought back from a goal down to win against Verona. Adrien Tameze put Verona in front but second half goals from Antonio Candreva, Albin Ekdal and Nicola Murru turned the game on its head.
Xavi made it two wins from two matches as Barcelona boss with a 3-1 victory at Villarreal.
It looked like the match would end in a draw when substitute Samuel Chukwueze equalised for the hosts after 76 minutes, cancelling out Frenkie De Jong's opening goal at the start of the second half.
However, a late double from Memphis Depay and Philippe Coutinho, from the penalty spot, saw the Catalans return home with all three points.
Barcelona are seventh in the table, three points behind fourth-placed Atletico Madrid and seven behind bitter rivals Real Madrid, who lead the way.
Rayo Vallecano lost ground on the top four after drawing 1-1 at Valencia. Isi Palazon scored their equalising goal after Carlos Soler had given the hosts the lead from the penalty spot.
Celta Vigo moved clear of the bottom three with a 2-1 victory at fellow strugglers Alaves. Iago Aspas scored the winning goal midway through the second half, converting the rebound after seeing his penalty saved.
Mallorca's goalless stalemate with Getafe saw them draw for the fifth time in six league matches.
There was a surprise result in Ligue 1 where bottom-of-the-table Metz won 1-0 at Nice. Fabien Centonze scored the only goal of the match after 31 minutes.
Nice stay in second position but are now 11 points behind league leaders Paris Saint Germain.
Defending champions Lille continue to find this season much tougher, drawing 1-1 at home to Nantes. Burak Yilmaz put the hosts ahead but Ludovic Blas soon equalised.
Fabio Da Silva was sent off late on but Lille were unable to make their numerical advantage count and are now without a league win since 3 October.