Barcelona had suffered their first defeat under coach Gerardo Martino against Ajax in midweek and Athletic appeared to learn from the Dutch champions' approach as, without the injured Lionel Messi, Barça struggled to impose themselves on the game.
Iker Muniain slotted home the only goal of the game from Markel Susaeta's cross 20 minutes from time as a third straight win moved the Basques into fourth.
The Catalans remain top of La Liga on goal difference only from Atletico Madrid with Real Madrid now just three points behind the leaders.
And the champions were left to complain about referee Juan Martinez Manuera's decision to only show Ander Iturraspe a yellow card when he pulled back Neymar as the Brazilian bore down on goal with the score still at 0-0.
"They are a god team and it is difficult when we have chances and don't take them," said midfielder Sergio Busquets.
"And yes the referee didn't do his job well either because it is a red card and that made it more difficult.
"I think that would have changed the game. He was through on the goalkeeper, I don't know where (Mikel) Balenziaga was but it was a clear one-on-one and for me it is a red card."
On top of Messi's absence, Barça were also missing Victor Valdes and Dani Alves and Busquets insisted they have to concentrate on not losing any more ground in the two league games that remain before the winter break with Messi and Valdes due back in January.
"We shouldn't be alarmed. We need to keep going, win the two games between now and the end of the year and learn from the mistakes we have made."
Neymar had Barcelona's best effort of the first-half with a curling effort that was brilliantly tipped over the bar by Gorka Iraizoz.
However, it was the hosts that had the better of the chances before the break as Muniain fluffed his lines after Andoni Iraola's cross was deflected perfectly into his path before Gorka Toquero headed wide when unmarked from Muniain's cross.
Martino's men improved after the break as Athletic's pressing wavered slightly and Neymar should have given them the lead when he raced onto Cesc Fabregas's fine through ball but slipped as he shot and the ball sailed well over.
Barça were then left infuriated at Manuera for not sending-off Iturraspe when he pulled back Neymar as the Brazilian was played in on goal.
Neymar pulled himself up to take the resulting free-kick which curled inches wide of Iraizoz's right-hand post.
However, it was Athletic who finally made the breakthrough when Ander Herrera robbed the ball deep inside Barça territory and fed Susaeta, whose cross from the right was turned home by Muniain for his third goal of the season.
Toquero then passed up a great chance to make it 2-0 as he headed straight at Jose Manuel Pinto from Muniain's inch-perfect cross.
Martino surprisingly withdrew Xavi and Andres Iniesta for Sergi Roberto and Pedro Rodriguez respectively in his search for an equalizer.
But Athletic saw the game out comfortably to register their first win over Barcelona since 2006.