Antoine Griezmann scored against the club where he made his name
Mikel Oyarzabal gave the hosts the lead with a penalty after Sergio Busquets fouled Diego Llorente, but Antoine Griezmann equalised with a clipped finish against his former club.
Luis Suarez then put Barca ahead from Lionel Messi's unselfish pass.
But Alexander Isak equalised as he fired home after Marc-Andre ter Stegen parried Nacho Monreal's cross-shot.
Real Sociedad were probably the better team with 53% possession and 19 shots to Barca's nine. Martin Odegaard, on loan from Real Madrid, was a key influence on the game although none of his five shots were on target.
Barca go one point clear of Real Madrid, who visit Valencia on Sunday (20:00 GMT). The old rivals meet in El Clasico on Wednesday.
| Real Sociedad | Barcelona | |
|---|---|---|
| 53% | Possession | 47% |
| 19 | Shots | 9 |
| 5 | Shots on Target | 5 |
| 8 | Corners | 5 |
| 7 | Fouls | 8 |