Sergio Ramos opened the scoring at the Ramon Sanchez Pizjuan and Ronaldo and Kaka were also on target to give the visitors a commanding lead at the interval.

Ronaldo bagged three more goals after the restart to move ahead of Barca forward Lionel Messi in the scoring charts, while Alvaro Negredo's brace provided scant consolation for the hosts.

The win cut Barca's lead to five points, but Pep Guardiola's side can restore their eight-point cushion tomorrow if they beat local rivals Espanyol at the Nou Camp ahead of the final three rounds of matches.

Elsewhere tonight, Atletico Madrid's lacklustre season continued with a 3-0 defeat by in-form Malaga.

The Andalucians' comfortable win - their fourth straight in La Liga - was brought about by Jose Salomon Rondon and Julio Baptista's headers in the first half before Enzo Maresca's late third added the gloss.

Getafe boosted their hopes of avoiding the drop whilst consigning bottom club Almeria to relegation with a vital 2-0 win the Coliseum Alfonso Perez.

Michel's side fell into the bottom three for the first time this campaign last weekend but they climbed back out thanks to goals in either half from Adrian Colunga and Pedro Rios.

The victory provisionally lifted Getafe up to 14th place on 40 points, but Almeria - who came into the game 12 points adrift of safety with only four games remaining - bid farewell to the top flight.

Giovani dos Santos scored twice as Racing Santander took a giant step towards survival with a 3-2 win at second-bottom Hercules.

All five goals came in a frantic first 45 minutes of a hugely entertaining match, with Hercules' Paraguay forward Nelson Haedo Valdez sent off after an hour for an alleged elbow on Domingo Cisma.

Giovani had headed Racing in front after 13 minutes and later restored his side's lead moments after Sendoa Agirre's leveller with half-time approaching.

But there was still time for two more goals before the break as Tiago Gomes equalised with a deflected strike to make it 2-2 and Henrique headed home in first-half stoppage time.

A stoppage-time penalty from David Barral earned Sporting Gijon a 2-2 draw and left Deportivo La Coruna still battling for survival.

Adrian twice put the struggling visitors ahead in the first half, but Ayoze Garcia equalised from the penalty spot in the 36th minute and then Barral's last-gasp spot-kick ensured the spoils were shared.

Roberto Soldado scored twice as Valencia returned to winning ways with a 3-0 home victory over Real Sociedad.

Soldado, having scored seven goals in the last five games, continued his red-hot form with two more in this game, either side of Jonas Goncalves' strike after 25 minutes.

Athletic Bilbao survived a late fightback from Levante to pick up three more crucial points with a 3-2 home win in their hunt for a European place.

The Basque club looked to be cruising to victory after goals from Gaizka Toquero, David Lopez (penalty) and Fernando Llorente put them 3-0 up just after the hour, but Levante netted twice in the final 13 minutes through Christian Stuani and Victoriano Nano to put the game back in the balance.