After 14 matches in the Spanish Primera Liga, Deportivo still hang on to the top spot, but they could have increased that lead when they travelled to Mallorca.
Barcelona started without Rivaldo, confident after their 3-1 win over Liverpool in the Champions League. But Barca found themselves a goal behind, thanks to Ismael Urzaiz's 10th-minute header.
However, Rivaldo came on in the 56th minute and produced immediate results, scoring with a stunning volley two minutes later to get Barcelona on level terms.
Bilbao, who were down to 10 men after Lacruz was sent off, recovered from the setback, regaining their lead nine minutes from time. Santo Ezquerro came up with a magnificent run and a superb finish to give his side a surprise 2-1 win.
La Liga leaders Deportivo resting some of their main players, were in trouble early on against lowly Mallorca after Alberto Luque scored the opening goal for the hosts after just nine minutes. Before the half hour mark, Mallorca doubled their lead as Luque came up with a brilliant strike from just outside the penalty area for his second goal of the match.
Moments later though, Deportivo pulled one back, Walter Pandiani with the header.
However, seven minutes into the second half and Deportivo's gamble to rest most of their first choice players completely backfired as Mallorca regained their two-goal cushion. Yugoslavian midfielder Veljko Paunovic tapped the ball into the goal for a 3-1 scoreline.
By now, Mallorca were in rampant form, and 10 minutes from time the hosts got a fourth through Alejandro Campano. The 4-1 victory lifts Mallorca to 13th in the table.
In other weekend results, Celta Vigo scored a comprehensive 4-1 win, with defending champions Real Madrid scoring an impressive 3-0 away win to Rayo Vallecano. Valencia suffered a 2-0 loss.
Deportivo though still hang on to the top spot two points ahead of Alaves and early league leaders Real Betis. Barcelona are in fourth place with 23 points ahead of Valencia on goal difference. Real Madrid move up to seventh place with 22 points.