The visitors came close to opening the scoring on 14 minutes through Martin Montoya, but he could only head the ball into the arms of Orestis Karnezis after being picked out by Adriano.
The wasted opportunity would prove costly just a few minutes later when Granada took the lead. Yacine Brahimi charged into the Barcelona box with the ball, before finishing into the bottom corner of the net to make it 1-0.
Cesc Fabregas almost levelled the contest after 30 minutes of play with his strike, only for Tiago Ilori to produce a fine block to keep his side in the lead.
Piti's strike from the edge of the box could have made matters even worse for the Catalan club, with Pinto initially making a meal of it, before keeping out Youseff El Arabi's follow-up.
Barcelona created a raft of chances in the early parts of the second half, the first of which came when Lionel Messi weaved into the box before drilling a cross towards Neymar which was well cut out.
Neymar came close with another effort moments later, while Sergio Busquets and Fabregas were also denied by Karnezis.
Despite all their attempts, it was Granada who very nearly added a decisive second when El-Arabi found himself one-on-one with Pinto, but the keeper was equal to the effort to keep his side in the match.
It was not to be for Barcelona, however, and Granada held out for all three points.