Just when they looked to have waved goodbye to their already slim hopes of winning La Liga, Real Madrid staged an unlikely second-half revival that allowed them to live to fight for another day in their battle to wrest the Spanish championship from the grasp of their rivals, Barcelona.

Just when they looked to have waved goodbye to their already slim hopes of winning La Liga, Real Madrid staged an unlikely second-half revival that allowed them to live to fight for another day in their battle to wrest the Spanish championship from the grasp of their rivals, Barcelona.

With the former Boca Juniors and Barcelona play-maker Juan Roman Riquelme running the show in midfield, Real were given the run around by Villarreal for most of yesterday's match. But for all their domination, the visitors rarely forced the Real keeper Iker Casillas into action as they over-elaborated when they got close to the area.

The one Real player who shone throughout the game was David Beckham, the England captain producing a performance that brought back memories of his heyday at Old Trafford.

It was Beckham who created Real's first scoring opportunity when he whipped in a fine cross from the right, but the Villarreal defender Quique Alvarez managed to cut the ball out before the waiting Michael Owen could pounce.

Villarreal eventually got a goal to reflect their domination, Riquelme scoring a penalty after the Real centre-back Francisco Pavon took both ball and man when he slid in to dispossess Diego Forlan as the former Manchester United striker raced into the area.

The seemingly tireless Beckham, though, was the heart of all Real's attacks and his efforts should have been better rewarded. Early in the second half, he picked out Owen with a great ball, but the England striker, who had a quiet game, was closed down after skipping past two defenders towards the byline.

Villarreal should have put the match beyond doubt just before the hour when Riquelme slipped the ball to Forlan as the two bore down on Casillas, but his pass was a little too strong and the Uruguayan, who has scored 18 goals this season, brought back memories of Old Trafford days when he snapped the ball into the side-netting.

The scare had the effect of stinging Real into a response that turned the game on its head. Beckham ran the ball out of defence and found Zinedine Zidane on the edge of the area. The Frenchman checked his way towards the byline before floating the ball across to the far post where the waiting Ronaldo had little more to do than nod the ball over the line.

Real's chances of a comeback appeared to have been dealt a fatal blow when they were reduced to 10 men three minutes later after Walter Samuel was sent off for a second booking, but the setback only sparked them into action once again.

Darting into the left-hand-side of the area, Ronaldo went to ground in a vain appeal for a penalty, but then jumped to his feet as the Villarreal defence stood off and slipped the ball back to the advancing Salgado who fired a first-time shot high into the far corner to snatch the winner.

Exhausted by their efforts, Real spent much of the last 15 minutes running the ball into the corners to run the clock down, and the shine was taken off their dogged victory when Zidane and Villarreal defender Quique Alvarez were sent off after becoming involved in an injury-time scuffle.