Chelsea eased the disappointment of their Club World Cup final defeat by beating Aston Villa 8-0 but Manchester United's lead over local rivals City at the top of the Premier league was cut to four points after they were held at Swansea City.
The Ligue 1 title race is a thriller with three teams - Paris St Germain, Olympique Lyon and Olympique Marseille - on 38 points at the halfway stage as European club football in the major leagues outside England heads into the winter break.
Lionel Messi struck his 91st goal this year as unbeaten La Liga leaders Barcelona won 3-1 at Real Valladolid while Real Madrid slumped to a 3-2 defeat at Malaga where Jose Mourinho surprisingly left captain and keeper Iker Casillas on the bench.
The setback left champions Real 16 points adrift of Barca, who have a record haul of 49, and seven behind second-placed Atletico Madrid, 1-0 winners at home to Celta Vigo.
Valladolid kept a dominant Barca at bay until two minutes before halftime when Xavi turned a low cross into the net.
Messi doubled Barca's lead on the hour with a trademark run and finish for his 26th goal of the league campaign as he extended the calendar year record he broke earlier this month when he overhauled Gerd Mueller's 40-year-old mark of 85.
Substitute Cristian Tello added a third in what was the perfect tonic for Barca following the news that coach Tito Vilanova had to have throat surgery last Thursday and is starting a course of chemo- and radiotherapy.
Chelsea, playing with a swagger missing for much of the season, routed Aston Villa 8-0 to move up to third place while Premier League leaders Manchester United wasted the chance to move six points clear after a 1-1 draw at Swansea City.
Striker Fernando Torres began the rout after three minutes and David Luiz and Branislav Ivanovic made it 3-0 at the break. Frank Lampard marked his 500th Premier League game with a rasping fourth before Ramires (two), Oscar and Eden Hazard joined in the fun for Chelsea, who also missed a late penalty.
United, who led at Swansea through Patrice Evra before being pegged back by league top scorer Michu's 13th goal this season, hold a four-point advantage over Manchester City, who beat Reading 1-0 thanks to Gareth Barry's stoppage time goal.
United have 43 points from 18 games, followed by City on 39 and Chelsea - who handed interim manager Rafael Benitez his first home league win - on 32 with a game in hand.
United boss Alex Ferguson was left fuming after their match, saying Robin van Persie "could have been killed" by Swansea's Ashley Williams when the prone striker was struck in the head from point-blank range by a clearance after a foul was given.
A late double from substitute Alessandro Matri helped top of the table Juventus to a 3-1 victory at 10-man Cagliari after the Serie A leaders had missed a penalty.
Lazio's 1-0 win at Sampdoria put them second above Inter Milan who were held 1-1 by Genoa in the final matches of 2012.
Champions Juve have 44 points, eight ahead of Lazio with Fiorentina and Inter, who slipped to fourth, a further point behind.
Cagliari took the lead against Juventus through Mauricio Pinilla's 16th-minute penalty after Marco Sau was fouled.
But they had Davide Astori sent off in the 65th for a second booking and Juve finally scored 10 minutes later through Matri after Arturo Vidal blasted his spot kick into the stands.
Home keeper Michael Agazzi kept Cagliari in the match until Matri added his second in stoppage time and then Mirko Vucinic scored a flattering third for the visitors.
Ligue 1 top scorer Zlatan Ibrahimovic netted his 18th goal of the season as Paris St Germain reached the halfway mark leading the standings with a 3-0 win at Stade Brest.
PSG have 38 points and are first on goal difference from Olympique Lyon, who beat visitors Nice 3-0, and Olympique Marseille, 1-0 winners at home to St Etienne thanks to Andre Ayew's first-half header.
Fourth-placed Stade Rennes, who beat AC Ajaccio 4-2, trail the top three by six points as Ligue 1 takes a three-week break.
Jeremain Lens's early double set PSV Eindhoven on the way to a 6-1 win over neighbours NAC Breda that left them top on goal difference from Twente Enschede who won 3-0 at AZ Alkmaar.
Lens opened the scoring after 11 minutes when he netted a rebound and while Breda goalkeeper Jelle ten Rouwelaar saved a penalty from Lens six minutes later, the PSV forward soon made amends with his second goal of the match.
Further strikes from Georginio Wijnaldum, Mathias Jorgensen, Luciano Narsingh and Juergen Locadia took PSV's league tally to 60 this season. (Compiled by Alison Wildey; editing by Ken Ferris)