Ronaldo, starting his first home match in over two months following an ankle injury, also created a goal and missed a penalty as Madrid made hard work of seeing off lowly Almeria.

There was little sign of the drama to come as Manuel Pellegrini's men ended an impressive first-half display 1-0 up thanks to Sergio Ramos' header.

But Almeria, who did not have a shot in anger in the opening period, stunned their hosts with two goals in three minutes from Fernando Soriano and Kalu Uche to lead 2-1.

That sparked the home side into action, and Madrid responded with goals from Gonzalo Higuain, Karim Benzema - who netted after Ronaldo's penalty had been saved - and then Ronaldo in the final 17 minutes.

The former Manchester United man was booked for taking his shirt off to celebrate that goal, and that proved costly as four minutes later he was handed his marching orders after picking up a second yellow following a tussle with Michel.

His dismissal did not cost Madrid too dearly though as they held on to make it seven home wins from seven and keep the pressure up on leaders Barca.

Third-placed Sevilla saw their title hopes suffer a setback as they were held 1-1 by 10-man Valladolid.

Manolo Jimenez's side went behind after 33 minutes when Angola striker Manucho gave the visitors a surprise lead.

But Valladolid found themselves a man down five minutes later after Borja Fernandez was sent off for a cynical lunge on Diego Perotti.

Jose Luis Mendilibar's side conceded a penalty on the stroke of half-time which Luis Fabiano converted.

But Sevilla failed to make their numerical advantage count and were unable to make up any ground on the top two.

Diego Forlan and Sergio Aguero were on target as Atletico Madrid beat Xerez 2-0.

Forlan converted a cross from Jose Antonio Reyes for the opener after 29 minutes and strike partner Aguero struck the second after 65 minutes as Atletico secured a second successive victory.

mfl