Italian Fausto Rossi scored the only goal of the game as he slammed home from close range after 17 minutes yesterday.
Atletico Madrid took advantage of Barca's slip up to move top of the table thanks to their better head-to-head record against Real Madrid as a double from David Villa handed them a 2-0 win over Celta Vigo at Balaidos.
However, Real can retake their place at the top and move four points clear of Barcelona with victory over Levante at home on Sunday.
"What we lacked today is normally what distinguishes the team; our circulation of the ball and our movement off the ball to find space. As a consequence of that we lacked penetration," Barca boss Gerardo Martino admitted.
More From This Section
"We lacked ideas, movement and penetration, but I didn't in any way see a lack of attitude."
Defeat means the Spanish champions will likely have to beat Real Madrid at the Santiago Bernabeu in two weeks time to have any chance of retaining the title.
"It is clear that right now we are not in our best form and we need to be to be able to beat Real Madrid. There are still 15 days to go until that match for us to find ourselves. Right now we have the Champions League to worry about.
"Today we didn't play well, just like we didn't play well in the game straight after the Manchester City game, in San Sebastian (a defeat to Real Sociedad). We will try to make sure it is the reverse on Wednesday.