Ronaldo at the double as Real defeat Betis
As well as putting Real a step closer to a first title since 2008, the victory in an entertaining clash in Seville set a club record of 10 straight league wins on the road in coach Jose Mourinho's 100th game in charge and gave them 70 points from 26 matches.
It was also their 11th successive league victory since losing 3-1 at home to Barca, who visited Racing Santander on Sunday, in December.
"A very tough game that fortunately we managed to win," Real forward Gonzalo Higuain told Spanish television. "Each game and each win is a step closer to the title."
Roared on by around 55,000 supporters at their Benito Villamarin stadium, Betis took a surprise lead through Jorge Molina in the 10th minute.
Ruben Castro controlled a cross from the left and laid the ball into the path of Molina who crashed a powerful first-time strike high past goalkeeper Iker Casillas.
Real were level 15 minutes later when Mesut Ozil sent Higuain clear and the Argentina forward fired the ball just inside the near post.
Casillas tipped a dipping Salva Sevilla free-kick on to the crossbar four minutes before the break as Betis continued to pressure the visitors.
Real then went ahead seven minutes into the second half when Ronaldo turned the ball into the net from close range after Marcelo's layoff.
An error from Alvaro Arbeloa, who failed to clear a corner, allowed Betis to level three minutes later, Jefferson Montero rifling the loose ball into the net.
Real's 73rd-minute winner came from another corner. Betis goalkeeper Fabricio did well to keep out a Sergio Ramos header but the ball fell to Ronaldo and he rifled home.
Elsewhere, Malaga leapfrogged Levante into the fourth Champions League qualification spot when the big-spending Qatari-owned club edged past their Valencia-based rivals 1-0 at the Rosaleda.
Malaga dominated the first half but squandered a slew of chances before Joaquin's inswinging free-kick flew into the net off the head of Levante forward Abdelkader Ghezzal six minutes into the second half.
Levante, who have an annual budget of about 20 million euros compared with Malaga's 100 million, came close with 10 minutes left but home goalkeeper Willy Caballero blocked a close-range effort from fellow Argentine Gustavo Cabral.
With 12 matches remaining Malaga have 40 points, two ahead of Levante.
Bottom club Real Zaragoza lost 3-0 at Real Sociedad who climbed to 11th on 33 points.
Zaragoza, whose unpopular president put his majority stake in the financially-troubled club up for sale this week, have 18 points, six behind Sporting Gijon who beat visiting Sevilla 1-0 thanks to Andre Castro's 32nd-minute goal.
The bad-tempered match, the first win for new coach Javier Clemente, ended in ugly scenes between some players and coaching staff that spilled over into the tunnel.