Quick-thinking Messi seals away win at Atletico
Messi caught the Atletico defence napping to score with a breathtaking 81st-minute free-kick and secure a 2-1 success for Barca, while an audacious Ronaldo backheel gave Real a 1-0 victory against Madrid neighbours Rayo.
It was a 28th league goal of the campaign for Messi, who succeeded Ronaldo as World Player of the Year and has won the award three times on the trot, leaving him one behind the former Manchester United forward at the top of the La Liga scoring chart.
With 24 of 38 matches played, Jose Mourinho's Real have 64 points, with Pep Guardiola's Barca on 54 in second and Valencia, who lost 2-1 at home to Sevilla on Sunday, 14 points further back in third.
Levante, the lowly Valencia-based club who are this season's surprise package, climbed to fourth on 35 points thanks to their 2-1 win at Espanyol on Saturday, although only eight points separate them from Villarreal in 17th.
Messi's genius settled an intense battle at the Calderon after Atletico's Radamel Falcao had cancelled out Daniel Alves's opening goal.
As the home defence lined up to defend a free-kick wide on the left, Messi noticed Atletico goalkeeper Thibaut Courtois out of position and curled a stunning strike over the Belgian's head into the far top corner.
The goal gave Barca only their fifth win in 12 games on the road, a poor run of away form that has effectively scuppered their bid for a fourth straight title and put Real within touching distance of a first La Liga title since 2008.
"We know that it's very difficult, that it's a lot of points, but we are going to keep fighting at every away game and in every match," Guardiola told a news conference.
"At difficult moments, Messi's capacity for leadership always shows, he's been doing it now for four years," he added.
Real's victory at Rayo's tiny stadium in the south east of the Spanish in the earlier kick-off equalled the club record of nine straight away wins from the 2009/10 season.
The decisive moment came when Ronaldo pounced on a loose ball at a 54th-minute corner and with his back to goal sent it through a crowd of players into the net.
"I didn't even think when I scored," the Portuguese told reporters.
"I just hit the ball with my heel and therefore surprised the defenders and the goalkeeper," he added.
"I hit it strongly enough so they couldn't stop it. It gave us the victory, so it's worth twice us much to us."
Mid-table Rayo, hosting their more illustrious neighbours for the first time in nine years, had the best chance of the first half when forward Piti crashed an angled shot past Iker Casillas that hit the inside of a post and bounced along the line.
Real were missing winger Angel di Maria and striker Karim Benzema, both injured, and struggled to create chances against a resolute Rayo, who were coming into the game on a run of three consecutive wins and were roared on by their flag-waving faithful.
They made Real suffer in the closing stages and squandered three clear chances for an equaliser, first when Sergio Ramos gave the ball away in a dangerous position.
It eventually fell to Michu but he skewed his shot over the bar before Casillas was forced into a superb diving save that stopped a thunderous long-range strike from Jose Manuel Casado.
Michu was shown a straight red card two minutes from time for an innocuous-looking tackle from behind on Real midfielder Sami Khedira and Rayo forward Emiliano Armenteros somehow failed to score in the dying moments when the ball fell to him on the line with Casillas stranded.
"It is easy to drop points at this stadium and we suffered on a difficult pitch," Mourinho said at a news conference.
"A league title is won at every venue and in every game. A draw would have been a just result because Rayo were fantastic," he added.
Athletic Bilbao missed a chance to climb above Levante into fourth and a Champions League qualification place when they were held to an entertaining 2-2 draw at improving Villarreal.
The home side, whose season has been wrecked by injuries to key players, took a 10th-minute lead through former Spain midfielder Marcos Senna before goals from Fernando Llorente and Markel Susaeta put the Basque club ahead.
Nilmar equalised in the 68th minute to leave Villarreal in 17th on 27 points and Bilbao in fifth on 34.
Malaga, who thumped bottom side Real Zaragoza 5-1 on Saturday, also have 34 points in sixth, level with seventh-placed Osasuna, who beat Granada 2-1 on Sunday.