Barcelona squandered the chance to climb back into La Liga's top four on Saturday as Granada scored a late equaliser to snatch a 1-1 draw after Barca's 17-year-old midfielder Gavi was sent off.
Luuk de Jong put the Catalans in front at Los Carmenes, heading in a cross from 38-year-old Dani Alves, who was making his first La Liga appearance since May 2016.
But Gavi was shown a second yellow card in the 79th minute and Granada equalised in the 89th, Antonio Puertas rifling a shot into the corner to deny Barcelona victory.
"We needed to have patience, to keep the ball and play in the opposition's half, but we lost silly balls, it was our mistakes," said Xavi Hernandez. "Before the sending off we had to kill the game. It should have been 2-0. We have to be self-critical and grow."
Barcelona could have moved into the Champions League qualification spots for the first time since September but instead they stay sixth, level on points with Atletico Madrid, who are still to face Villarreal on Sunday.
Real Sociedad sit fourth after they had earlier won 1-0 at home to Celta Vigo.
Xavi said he was "annoyed" after losing "two vital points". He admitted Gavi's red card "changed the game" but was critical of the whole team's management of the second half.
Gavi's mistake gave Granada impetus at a crucial moment but Barcelona's lack of goals means they are constantly vulnerable to the slightest error. They have won only one game by more than a single goal since October.
Alves' last league game for Barcelona came five years ago, also away at Granada, and he also claimed an assist that day as Luis Suarez scored a hat-trick and Barca won the title.
Now 14 points behind leaders Real Madrid, Alves has rejoined a team competing not for the title but a place in the top four, with Champions League qualification this season crucial to the club's hopes of recovery.
A breathless first half saw De Jong head into the corner but Gavi was just offside while Granada went close at the other end, Darwin Machis driving low and forcing an excellent save from Marc-Andre ter Stegen.
Granada deserved to be level at half-time but parity only lasted 12 minutes after the restart as Alves collected the ball on the right and swung a deep cross into the penalty area. De Jong backtracked behind Victor Diaz to make space and headed in past the diving Luis Maximiano.
Barcelona were never comfortable though and when Gavi slid in late on Alex Collado, an equaliser felt inevitable. A Granada corner brushed the thigh of Sergio Busquets and dribbled loose in the area. Puertas adjusted, swivelled and lashed his shot into the corner.
Granada almost won it in injury-time when Ter Stegen scuffed a clearance and Luis Milla attempted a well-placed lob. Ter Stegen recovered just in time.