Lionel Messi's 23rd-minute opener was cancelled out by Darwin Machis, whose goal in the 63rd minute was almost a mirror image of the six-time Ballon d'Or winner's left-footed drive.
Two substitutes, Jorge Molina and Adrian Marin combined for the winner. Molina, who wasn't marked well by Gerard Pique in the box, headed in Marin's cross to stun Barcelona.
Barcelona coach Ronald Koeman was sent off following Granada's equaliser and had to see his side suffer a loss at the Camp Nou from the stands. Earlier, Antoine Griezmann continued his fine form and was the provider for Lionel Messi's 26th goal of the campaign.
Granada threatened before the break but just couldn't find the finishing touch. However, they scored twice in the second half to deal a telling blow to Barcelona's title hopes.
A win would have seen Barcelona atop the La Liga summit, but a loss means the Blaugrana remain behind Atletico Madrid and Real Madrid in the league standings. On that note, let's take a look at the five talking points from the game.
#1 Granada record their first win at the Camp Nou
The win at the Camp Nou was a historic one for the Nazaríes. It was the Andalusian club's first-ever win away at Barcelona in 25 attempts.
Barcelona had a 100% record against Granada in 24 previous La Liga meetings between the two teams at Camp Nou. Barcelona were the favourites to get all three points one again. And they got off to a great start by breaking the deadlock in the 23rd minute.
However, Granada showed nerves of steel as they came back from behind, despite having just 18% of possession. The visitors scored twice from five shots on target, and Barcelona failed to muster a response.
#2 Barcelona head coach Ronald Koeman gets sent off
It is not a rarity to see managers being awarded a red card. Usually, it is reserved for violent conduct, but Ronald Koeman saw one for expressing what was his displeasure at Barcelona conceding a goal.
Notably, Koeman didn't argue with match officials. But the timing of the red card was unfortunate for Barcelona, as it was right after they conceded a goal.
Koeman could now be out for at least two games, and that would mean Barcelona would be without their manager on the sidelines during a crucial juncture in the season.