Madrid remain nine points behind Barca with 13 games to go after Raul Albentosa cancelled out Ronaldo's opener.
Atletico Madrid also failed to gain significant ground on Barca as they were held 0-0 at home by Villarreal to move eight points behind in second.
However, Gary Neville's upturn in fortunes as Valencia boss continued with a third win in a week, 2-1 at Granada.
Zinedine Zidane's men were left to rue Ronaldo's miss from the spot to make it 2-0 before the break when Carlos Kameni dived to his left to parry the three-time World Player of the Year's effort.
"There are 39 points still to play for. You think the league is lost, but the players and myself don't believe that."
Madrid were without the injured Karim Benzema and Gareth Bale, while James Rodriguez was left on the bench by Zidane.
The visitors were lucky to go in front as Ronaldo headed home Toni Kroos's free-kick despite clearly standing in an offside position.
There was no doubt about the penalty award two minutes later, though, when Ronaldo was brought down by Weligton.
Malaga missed a great chance to level before the break as Jesus Navas parried Duje Cop's shot into the air and Sergio Ramos got back to clear the looping ball off the line.
And Navas then made an incredible stop just after the restart when Nacho turned Juanpi's cross towards his own goal.
- Defences on top -
===================
Chances were far harder to come by at the Vicente Calderon as the two best defences in the league stood firm.
Atletico's top scorer Antoine Griezmann headed Juanfran's inch-perfect cross just wide before Angel Correa's audacious chipped effort forced Villarreal goalkeeper Alphonse Areola into his only serious save after half-time.
Elsewhere, Neville's Valencia again rode their luck, but recorded back-to-back league wins for just the second time this season as Granada passed up a wave of second-half opportunities.
With confidence high from their 6-0 thrashing of Rapid Vienna in the Europa League on Thursday, Valencia started the stronger and only great saves from Andres Fernandez prevented Paco Alcacer and Andres Gomez from giving Valencia a half-time lead.
Dani Parejo eventually opened the scoring 10 minutes after the break when he swept home Alcacer's knockdown.
Santi Mina sealed the points for Valencia on the counter-attack before Edgar Mendes pulled a goal back in stoppage time.
"I think at the moment we need to win all our games to keep the momentum going," said Neville.
"The dressing room changed significantly in the last week in terms of mood as when you win there is a stronger belief."
Sevilla remain eight points off Villarreal in the battle for the final Champions League place as they blew a two-goal lead to draw 2-2 at Rayo Vallecano.
