Barcelona suffered a potentially costly slip-up ahead of Thursday's (AEDT) Clasico as they were held to a 2-2 draw at Real Sociedad.
Luis Suarez scored one goal and made another as Ernesto Valverde's men, who had won their previous six games in all competitions, came from behind to lead at Anoeta.
However, Alexander Isak's 62nd-minute strike earned fourth-placed Sociedad a deserved share of the spoils, meaning Real Madrid now have the chance to move two points clear at the top of La Liga with victory at Valencia on Monday.
Barca could have few complaints about their failure to win, having been outplayed for large parts of an entertaining contest, and the champions will know they must deliver an improved display against Madrid in their next match.
Sociedad moved ahead after 12 minutes when Sergio Busquets was penalised for tugging Diego Llorente's shirt at a corner and Mikel Oyarzabal calmly sent Marc-Andre ter Stegen the wrong way from 12 yards.
The hosts remained in the ascendancy for much of the first half, but Barca pulled level in the 38th minute courtesy of a devastating break. Sociedad were left short of bodies at the back after Llorente was caught under the ball near the halfway line and Suarez drove forward before slipping in Antoine Griezmann, who clipped a deft finish into the bottom-right corner in front of his former home fans.
Imanol Alguacil's men were again guilty of slack defending as Barca took the lead four minutes into the second half. A glorious lofted pass from the previously unimpressive Busquets put Lionel Messi clear and he selflessly squared the ball to leave Suarez with the simple task of finding an open goal.
Griezmann and Gerard Pique came close to adding a third for Barca, but Sociedad soon hit back, Isak converting a simple rebound after ter Stegen had needlessly parried a Nacho Monreal cross into the striker's path.
Monreal required treatment and a new shirt after comically injuring himself celebrating the goal. He and Oyarzabal attempted to bump chests but instead collided face to face.
Neither side could find a winner thereafter, home substitute Willian Jose coming closest when he fired a close-range shot into ter Stegen's legs with the keeper grounded, while Barca saw an injury-time penalty appeal waved away when Pique and Llorente tumbled to the floor together contesting a Suarez cross.
What does it mean? Sociedad well worth a point but left to rue defensive lapses
There is a reason Sociedad came into this game sitting fourth in the table. The Basque side showed plenty of attacking verve as they capitalised on a below-par Barca showing. Had the hosts been more switched on at the back, they would have been able to celebrate a glorious triumph.
Odegaard a constant threat
Madrid loanee Odegaard is enjoying a fine season and the young midfielder was a lively and creative presence throughout this match. All that was missing was the end product as the youngster repeatedly found himself in promising positions without capitalising.
Busquets struggles but still makes an impact
Busquets was regularly bypassed as Sociedad played through Barca all too easily in the first half, with Odegaard and Oyarzabal repeatedly exploiting space in front of the visitors' back four. However, the experienced midfielder did show his enduring class with a glorious pass in the build-up to Suarez's goal.
Barca move on to the small matter of a home Clasico against Real Madrid on Thursday, the game having been initially postponed due to political unrest in Catalonia. Sociedad are in Copa del Rey action at Tercera Division side Becerril Campos on Friday.