Granada took advantage of Barcelona's troubles on the road to move top of LaLiga with a 2-0 victory at the Estadio Los Carmenes.
Ramon Azeez and Alvaro Vadillo netted in either half to leave Barca, who started Lionel Messi on the bench, without a win in all four away matches this season.
A win against a side they have beaten 11 times in their last 12 league meetings would have taken Barca top of the table on goal difference.
But despite the introduction of Messi at half-time, it was Granada who took their opportunity to leapfrog Sevilla and Atletico Madrid to the summit.
The hosts went ahead in the second minute through Azeez.
Roberto Soldado robbed Junior Firpo, fed Antonio Puertas and his cross was headed in by the striker from close range, leaving Barca trailing for the fourth time in five league matches.
Marc-Andre Ter Stegen made a fine save to push Puertas' shot wide as Granada attempted to double their advantage.
Yangel Herrera, on loan from Manchester City, fired over before Barca had their first attempt on goal on the stroke of half-time, with Luis Suarez having a shot blocked.
Ernesto Valverde shook things up at half-time, bringing on Messi and Ansu Fati for Junior and Carles Perez.
But Granada refused to be overawed and almost went 2-0 up following a howler from Ter Stegen.
The goalkeeper, under no pressure at all, dropped a catch before recovering to smother the ball before it went over the goal-line.
Granada did double their advantage in the 66th minute, though, Vadillo converting from the penalty spot following a handball from Arturo Vidal, who had just come on as a substitute.
Messi tried in vain to haul Barcelona back into the game, sending in numerous crosses that came to nothing and having a shot saved by Rui Silva.
The defeat sees Barcelona drop down to seventh in the table, three points behind leaders Granada, after suffering their second defeat in five league games.