Unbeaten leaders Barcelona ended the first half of the season with a record 55 of a possible 57 points when Messi scored one goal and had a hand in two more in a 3-1 win at Malaga on Sunday.
An 18th victory in 19 games for Tito Vilanova's side restored their 11-point lead over second-placed Atletico Madrid, who earlier secured a 10th win in 10 home matches this term with a 2-0 success against Real Zaragoza.
Barca's win also extended their advantage over arch rivals Real Madrid to 18 points after the stuttering champions, mired in third, were held to a 0-0 draw at bottom side Osasuna.
Messi's goal was the World Player of the Year's 28th in the league this season and the ninth straight game he has scored, a personal best and one short of the La Liga record.
Juventus, eight points clear at the top of Serie A before Christmas, had their lead cut to three by Lazio after they were held 1-1 at Parma.
Andrea Pirlo put Juventus ahead early in the second half with a free kick which was deflected in by Jonathan Biabiany but Nicola Sansone kept Parma's unbeaten home record intact with a 77th-minute equaliser.
Lazio took advantage of the result by beating Atlanta 2-0 with a controversial second-half goal from Sergio Floccari, who appeared to control the ball with his hand, and an own goal by Davide Brivio.
Napoli stayed two points behind Lazio in third with a 3-0 win over Palermo.
Olympique Lyon reclaimed the Ligue 1 top spot with a 2-1 win at struggling Troyes thanks to centre back Samuel Umtiti's first league goal.
Lyon are on 41 points from 20 games, two ahead of Paris St Germain who could only manage a 0-0 home draw against lowly Ajaccio after Thiago Motta was sent off on the stroke of half time.
Olympique Marseille are third on 38 after their four-game winning run ended with a 3-1 defeat at 17th-placed Sochaux.
Benfica and Porto scored twice each in a goal-filled opening 20 minutes of a match that ended 2-2 at the Luz stadium to keep the Portuguese Premier League title chase wide open.
The Lisbon club lead the table with 36 points from 14 matches, three ahead of Porto who have a game in hand.