Lionel Messi scored his 50th goal of the year as Barcelona wrapped up 2019 in style with a 4-1 victory over Alaves at the Nou Camp.
Messi scored his side's third goal in the 69th minute as Ernesto Valverde's men fought back from their below-par El Clasico draw with Real Madrid in midweek.
Antoine Griezmann put the home side in front early and Arturo Vidal added a second on the stroke of half-time.
Alaves reduced the deficit through Pere Pons but Messi's effort settled nerves and a late Luis Suarez penalty kept Barcelona's lead at the top of La Liga intact.
Goals from Diego Carlos and Ever Banega helped Sevilla maintain third place with a 2-0 win at Mallorca, Manu Vallejo struck deep into injury time to rescue Valencia a 1-1 draw at Real Valladolid, while a Moi Gomez goal gave Villarreal a 1-0 win over Getafe.
Inter Milan moved to the top of Serie A on goal difference as they returned to winning ways with a 4-0 triumph over Genoa.
Romelu Lukaku hit two and Roberto Gagliardini and 17-year-old Sebastiano Esposito also scored as the home side showed no ill effects from their recent Champions League exit.
Bottom club SPAL claimed only their second win of the season as they came from behind to win 2-1 at Torino, while Seko Fofana's late strike gave Udinese a 2-1 win over Cagliari.
RB Leipzig hit back from behind to beat Augsburg 3-1 and establish a two-point lead at the top of the German Bundesliga.
Florian Niederlechner put the visitors in front after eight minutes but second half goals from Konrad Laimer, Patrik Schick and Yussuf Poulsen gave the hosts the posts.
Bayern Munich almost slipped up against Wolfsburg before two goals in the last five minutes – including the opener from 18-year-old substitute Joshua Zirkzee – earned a 2-0 win.
Second-placed Borussia Monchengladbach were held to a goalless draw by Jurgen Klinsmann's improving Hertha Berlin.
Elsewhere, Ahmed Kutucu's goal gave fifth-placed Schalke a 2-2 draw at home to Freiburg, Bayer Leverkusen won 1-0 at Mainz, and Koln edged fellow strugglers Werder Bremen by the same score.
Paris St Germain maintained their seven-point lead at the top of French Ligue 1 as they cruised to a 4-1 win over struggling Amiens.
Kylian Mbappe scored twice with further strikes from Neymar and Mauro Icardi as the hosts claimed their sixth straight domestic win.
Second-placed Marseille kept up the chase with a 3-1 home win over Nimes, while a late goal from M'Baye Niang lifted Rennes into third place with a 1-0 win over Bordeaux.
Lille crashed 5-1 at Monaco, for whom Wissam Ben Yedder scored twice, while Nantes also lost ground as they were beaten 2-1 at home by Angers.
Mathieu Cafaro's first-half penalty proved enough to earn Reims a point in a 1-1 home draw with Lyon.
Nice breezed past bottom club Toulouse 3-0, Montpellier beat Brest 4-0, Strasbourg beat St Etienne 2-1 and Dijon and Metz shared the points in a 2-2 draw.