Samuel Eto'o scored the game's only goal, starting and sublimely finishing a Barca move after 40 minutes.

Barca had plenty of chances to kill the game off but lacked precision in the final third, with Xavi and Andres Iniesta both failing to score despite a handful of chances.

Real Madrid also found life tough as they claimed a 1-0 win at Malaga to keep the gap between themselves and Barcelona at the top at six points.

Gonzalo Higuain scored the only goal of the game, a fine individual effort after 49 minutes to keep the pressure on Barca.

Madrid's win means they have now taken 40 points from a possible 42 over the last few months under coach Juande Ramos and, with nine games remaining in the season, they look certain to take the title race right to the wire.

Frederic Kanoute's first-half penalty was enough to give third-placed Sevilla a 1-0 win in a tight Andalusian derby tonight and leave Recreativo Huelva in big trouble with just nine rounds to play.

Three goals in the first 35 minutes by Almeria saw the struggling side claim a 3-0 victory over Villarreal.

Alvaro Negredo tormented the visitors, scoring one and making the other two for Pablo Piatti and Mane.

On a miserable night for fourth-placed Villarreal, they saw Robert Pires sent off with more than half an hour to play for two bookable offences and also lost Santi Cazorla to a serious leg injury midway through the second half. He will miss the rest of the season, Villarreal confirmed.

Javi Martinez struck a late winner as Athletic Bilbao gave their survival hopes a huge boost with a much-needed 2-1 victory over fellow relegation battlers Real Mallorca at San Mames.

The 20-year-old slotted home six minutes from time to earn Copa del Rey finalists Athletic their first league win since January and end Mallorca's seven-match unbeaten run.

Earlier, Francisco Yeste had given the hosts the lead with a fifth-minute penalty before Jose Manuel Jurado levelled after 72 minutes.

Real Betis remain in trouble at the wrong end of the table after finishing an incredible match with a fifth straight Primera Liga draw - 3-3 at home to Numancia.

Sergio Garcia gave Betis an early lead, but Carlos Aranda equalised six minutes before half-time and Jose Javier Barkero fired the visitors in front from the penalty spot with a quarter of an hour left.

Nelson was sent off for the foul and Betis were forced to play the last 15 minutes with 10 men but Capi struck six minutes from time and the home side looked set for a win when they were awarded a highly-controversial penalty.

Manuel Pavon was adjudged to have brought down Edu and received a second yellow card for the supposed foul. Ricardo Oliveira converted from the spot.

That looked to have sealed it for Betis, but there was more drama to come as Numancia won a second penalty of their own in the fifth minute of added time.

There was no doubt this time as Ricardo upended Aranda.

The Portugal goalkeeper was sent off, leaving his side with nine men, and Aranda beat stand-in keeper Melli to rescue an important point for the visitors, who remained in the bottom three.