Cristiano Ronaldo struck twice to lift Real Madrid to a 4-1 home win over Real Sociedad on Sunday which trimmed Barcelona's lead at the top of La Liga to seven points.
A resurgent Kaka and new loan signing Emmanuel Adebayor added a goal either side of Ronaldo's 23rd and 24th of the campaign as Real bounced back from last weekend's shock defeat at Osasuna to stay in touch with the champions.
Barcelona went 10 points clear when World Player of the Year Messi netted his fourth hat-trick of the season in a 3-0 win over Atletico Madrid on Saturday, a record 16th successive victory for the Catalan club.
"If he doesn't score another goal this season his league campaign will have been fantastic," coach Jose Mourinho said of his compatriot Ronaldo at a news conference.
"He always plays at the peak of his abilities and ambitions, he gives everything for the team."
Barca have 61 points from 22 matches, with Real, who have won all 11 home games, on 54 and Villarreal nine adrift in third after losing their unbeaten home record in a 1-0 defeat by local rivals Levante on Saturday.
Fourth-placed Valencia closed to within a point of Villarreal when Aritz Aduriz and Tino Costa scored in a 2-0 home win over promoted Hercules in Sunday's late kickoff.
BARREN RUN
With Ronaldo, Kaka and Mesut Ozil providing attacking flair and pace and new loan signing Adebayor leading the line, Real thrilled their fans at the Bernabeu with a dominant and entertaining performance.
Brazil playmaker Kaka, who hit the crossbar in the second half, continued his return from a serious knee injury when he controlled the ball on the edge of the area in the eighth minute and stroked it low past goalkeeper Claudio Bravo.
Ronaldo had not scored in four matches and ended that barren run with a powerful left-foot strike from outside the area in the 21st.
He celebrated turning 26 on Saturday shortly before halftime when he leaped above the Sociedad defence to send a header flying high past Bravo.
The visitors pulled a fortunate goal back in the 72nd when Iker Casillas blocked Raul Tamudo's shot and the ball rebounded off Real defender Alvaro Arbeloa and into the net.
Togo striker Adebayor, who scored his first goal for Real since joining from Manchester City in Wednesday's King's Cup semi-final against Sevilla, clipped in Real's fourth a minute from time.
"It always helps when you score an early goal," Real's Spain midfielder Xabi Alonso, a former Sociedad player, said in a television interview.
"We controlled the game tonight and it was a complete performance spoiled only by conceding the goal," he added.
In the earlier kickoff, Sevilla were held to a 0-0 draw at home by Andalusian rivals Malaga.
Real eliminate Atletico to reach King's Cup semis
La Liga: Ronaldo hat-trick inspires Real Madrid
La Liga: Cani strike boosts four-goal Villarreal
Cristiano Ronaldo names son after himself
Sevilla down Villarreal to reach King's Cup semis