Barcelona stretched their lead at the top of the Primera Liga to seven points on Saturday with a confident 2-0 win against Real Mallorca while arch-rivals Real Madrid slumped to a 2-0 home defeat by Athletic Bilbao.
Barca disposed of Hector Cuper's Mallorca at the Nou Camp after an early penalty save by Victor Valdes was followed by two fine individual strikes by Portugal midfielder Deco.
In-form Bilbao put an end to Real's seven-match winning streak under Brazilian coach Vanderlei Luxemburgo thanks to a bullet header from fullback Asier del Horno and a cool finish from young midfielder Andoni Iraola.
It was Real's first defeat since Luxemburgo took charge at the end of last year and their third loss this season at the Bernabeu.
Sevilla missed the chance to consolidate their position in third place when they lost 1-0 at Real Sociedad, striker Darko Kovacevic snatching a late winner after good work in the area.
The results mean Barca lead the standings with 57 points from 24 games, Real follow on 50, while Sevilla are nine points further back on 41.
Barca were given an early scare when Mallorca were awarded a penalty in their first attack after defender Carles Puyol was adjudged to have pushed Luis Garcia in the area in the 12th minute.
Valdes, however, came to the rescue when he guessed right and got his hand to Garcia's spot kick to stop the visitors going in front.
The Catalans responded by stepping up a gear and took the lead five minutes later when Deco found himself in space after turning inside a defender, looked up and sent an angled shot bobbling across the area and inside the far post.
The former Porto midfielder claimed his second 13 minutes into the second half with another fine solo strike, this time drilling under Moya after he had darted into the area from the right.
While Barca coach Frank Rijkaard fielded a full-strength side against the struggling islanders, Luxemburgo decided to ring the changes at the Bernabeu.
RONALDO DROPPED
The Brazilian dropped Ronaldo to the bench after his failure to train properly during the week and rested Raul and Zinedine Zidane ahead of next week's Champions League clash against Juventus.
Michael Owen was given a rare start with Guti moving forward from midfield to support him upfront and David Beckham switching from the right to partner Thomas Gravesen in the middle.
Real flattered to deceive in the opening quarter of an hour as they pinned the visitors in their own area, but they faded quickly and it was Bilbao who proceeded to gain the upper hand.
Midfielder Pablo Orbaiz was denied a goal in the 17th minute when he unleashed a 40-metre drive that crashed off the cross bar and over the line before bouncing back into play, but unsighted referee Xavier Moreno Delgado waved the game on.
Real's luck eventually ran out 13 minutes after the break when the unmarked del Horno powered in a header from 10 metres after Orbaiz had swept in a superb curling cross from the right.
Keeper Daniel Aranzubia produced a top-class double save to block shots from Guti and then Luis Figo midway through the second half, but Real struggled to make further inroads.
Luxemburgo threw caution to the wind by sending on Ronaldo, Raul and Zidane soon after, but it was Bilbao who took advantage of the weakened Real defence to extend their lead 17 minutes from time.
An unmarked Iraola slotted past Iker Casillas to make it 2-0 and allow the Basques to extend their unbeaten run to 10 matches after Santi Ezquerro had picked him out with a perfectly placed 20-metre pass from the touchline.