(CNN) -- Lionel Messi grabbed a brilliant hat-trick as Barcelona routed Tenerife 5-0 on Sunday to maintain their two-point advantage at the top in the Spain's La Liga over arch rivals Real Madrid.
Barca, who went into the late kickoff temporarily trailing Real, who had won 2-0 at home to Real Mallorca, made a slow start and might have been behind.
Alejandro Alfaro had three good chances to put the hosts ahead but the Tenerife striker hit the crossbar on was denied twice by goalkeeper Victor Valdes.
They were made to pay as World Player of the Year Messi scored the opener in the 36th minute after getting a pass from Bojan Krkic inside the area.
Messi's free kick saw Carles Puyol head home the second in the 44th minute and on the stroke of halftime a move involving Andres Iniesta and Krkic set up Messi for the simplest of third goals.
The Argentina international notched his 12th league goal of the season and his hat-trick with an impudent cruling chip over goalkeeper Sergio Aragoneses into the top corner.
Ezequiel Luna completed the rout with an own-goal in the 85th under pressure from Pedro to leave Barcelona with 43 points from 17 matches.
Real Madrid were totally dominant against a Mallorca side who had exceeded expectations to occupy fourth place in the Primera Liga going into the match.
With freezing weather affecting the bulk of Europe, the match was played wintry conditions, with a snow being seen at a match in the Bernabeu for the first time in 30 years.
But Real put on a performance to warm their fans huddled in the giant stadium, with Gonazalo Higuain putting them ahead with a stunning eighth minute strike as he cut inside to fire past Dudu Aoarte.
The home side should have increased their advantage just before the break as Cristiano Ronaldo shot wide from an excellent position after a flowing home move.
Higuain crossed for Esteban Granero to score Real's second on 50 minutes as he volleyed past Aoarte.
Granero should have notched a clinching third soon afterwards as his fierce shot from a Kaka cutback was brilliantly turned away by Aoarte.
Brazil star Kaka lasted just over an hour after an injury layoff before being replaced by Karim Benzema.
Earlier, Valencia strengthened their grip on third place behind the big two with a 3-1 win at bottom club Xerez.
The home team, who have just seven points after 17 rounds, looked set to spring a surprise when Carlos Calvo equalized Juan Mata's opener.
But Valencia re-established their command with a goal from Spanish international star David Silva and a fine individual strike from Carlos Marchena sealed three points.
Deportivo maintained their bid for a Champions League slot with a 1-0 win over Osasuna to go fourth.
Juan Rodriguez scored the only goal of the game as he met Andres Guardado's cross in the 50th minute.
Osasuna were down to 10 men when midfielder Javad Nekounam was red carded in the 67th minute.
In the relegation battle, Malaga stretched their unbeaten run to 10 matches in all competitions but were held to a 1-1 draw by Athletic Bilbao.
Fernando Llorente denied Malaga a deserved three points with a late penalty for Bilbao to earn a share of the spoil after Weligton's opening goal at the start of the second half.