Athletic Bilbao have inflicted a second defeat in the space of a week upon Barcelona at San Mames.
It was the visitors who started strong and nearly took the lead in the 13th minute when the ball fell kindly for Neymar inside the area.
However, Gorka Iraizoz was equal to the Brazilian's effort, pushing it over the bar.
As the half wore on, Los Leones began to assert themselves, with Markel Susaeta in particular causing the Blaugrana problems.
The 25-year-old winger carved out clear-cut openings for Iker Muniain and Gaizka Toquero before the break, but wasteful finishing prevented the hosts from taking a lead before half time.
Barca started the second period as they had the first, with Cesc Fabregas supplying Neymar to fire waywardly off target.
The game hinged on a contentious decision from the referee, who deemed Ander Iturraspe's foul on Neymar worthy of a yellow card, despite him being the last man and the Brazilian bearing down on goal.
When the breakthrough finally came in the 70th minute, it was a result of dogged work from Ander Herrera and a good cross from Susaeta, which was met by the arriving Muniain.
Toquero nearly made it 2-0 in the 77th minute, only to be denied by a fantastic reflex stop by Jose Manuel Pinto.
Gerardo Martino's men, who fell 2-1 at Ajax in the Champions League in midweek, struggled to create any clear chances as they desperately tried to avoid their first league defeat of the season.
There was to be no rescue act, though, as Bilbao made it three wins in a row.