Four days after recording the biggest comeback in Champions league history with a 6-1 thrashing of Paris Saint-Germain, Barca were extremely poor as they fell to a costly defeat in the title race.
Joselu punished a first-half mistake from goalkeeper Marc-Andre ter Stegen to put hosts Depor ahead after his only other two league goals this season had come against Real Madrid.
Luis Suarez, who scored four when Barca won 8-0 at the Riazor last season, appeared to have got the visitors back on track after the break, but Depor captain Alex Bergantinos’ header with 16 minutes remaining proved decisive.
Barca had won six league matches in a row coming into the fixture, but could now lose top spot in LaLiga on Sunday, with Real Madrid still just one point behind ahead of their home match against Real Betis.
Impressive Depor are now four matches unbeaten under new boss Pepe Mel, this victory opening up an eight-point gap on the relegation zone.
A quiet start to the match saw Joselu fire an effort straight at Ter Stegen in the only early opportunity of note.
Barcelona, who made five changes from the PSG triumph, did not threaten until Luis Suarez poorly sent a free header into the arms of German Lux after latching on to Lionel Messi’s free-kick just before the half-hour mark.
Depor went close when a superb half-volley from Joselu was impressively kept out by Ter Stegen at full stretch, Fernando Navarro creating the chance.
But the hosts went one better from the resulting corner, Ter Stegen failed to gather Javier Mascerhano’s attempted clearance, allowing Joselu to thump in from close range.