Barcelona missed the chance to replace Real Madrid at the top of La Liga as Real Sociedad secured a 1-0 victory thanks to Jordi Alba's own goal.
Luis Enrique made the surprising decision to leave both Lionel Messi and Neymar on the bench, and the visitors were on the back foot inside two minutes as Sociedad took the lead.
A cross from Sergio Canales put Alba under pressure at the front post, and he could only head into his own net as he looked to clear the danger from a congested penalty box.
Despite the early setback, Barcelona would dominate possession in the first half, with Xavi curling just over the crossbar from a free kick.
However, Sociedad would continue to look dangerous when they did commit men forward, and Claudio Bravo was forced into a fine save before the break when Canales unleashed a shot after a clever piece of skill.
Messi would be introduced at the start of the second half, and Neymar was sent on just before the hour mark as Barcelona desperately searched for a way to break down Sociedad's stubborn defence.
A trademark Messi run into the box almost provided the equaliser for the visitors, but Inigo Martinez stepped in with a crucial challenge to deny the Argentine.
Barcelona continued to threaten on a regular basis, with Xavi hitting a tame effort straight at Sociedad goalkeeper Geronimo Rulli, before Messi fired a half-volley over the crossbar.
However, the hosts would continue to frustrate the Barcelona attack, and David Moyes's side held on to collect all three points to move further away from the relegation zone.