Real Madrid edged a step close to the Primera Liga title, Sporting Gijon secured an important win in their battle to avoid relegation and Malaga moved into the UEFA Champions League places.
Real Madrid opened up a 13-point lead over reigning champions Barcelona following a thrilling 3-2 victory away to Real Betis.
Betis were in front after 10 minutes through Jorge Molina's composed finish, but Real levelled 15 minutes later after Gonzalo Higuain capped a run from near the halfway line with a drilled goal.
Ronaldo then put the visitors ahead by volleying home at the near post on 52 minutes, but Jefferson Montero equalised for Betis three minutes later after Real had failed to deal with a corner.
However, Ronaldo secured Real's 23rd win from 26 league games this season when he drove home the loose ball after Betis had been unable to clear a set-piece on 73 minutes.
Castro's first-half goal lifted Sporting to within three points of Primera Liga safety following a 1-0 home win over Sevilla in a niggly encounter.
Diego Perotti struck the post on 26 minutes for Sevilla and, six minutes later, Castro scored the only goal of the game to hand Sporting a sixth win of the season.
Malaga jumped into fourth spot in the table after Jose Salomon Rondo's 51st minute goal secured a 1-0 home success over Levante, who had previously occupied the final Champions League berth.
Real Zaragoza remained rooted to the foot of the table after suffering a 3-0 defeat away by Real Sociedad.
Imanol Agirretxe scored twice in the first half for Sociedad and his brace sandwiched a goal by on-loan Arsenal forward Carlos Vela.
Zaragoza's misery was compounded late in the game when Maurizio Lanzano was sent off after collecting a second yellow card.