Yacine Brahimi netted the only goal for Granada in the 16th minute before Barca spurned a host of chances, with Neymar taking a prime place among the culprits.
It is the second time this week Gerardo Martino's team have fallen by a 1-0 margin, following their UEFA Champions League exit at the hands of leaders Atletico Madrid – who have the chance to pull four points clear of the defending champions when they host Malaga tomorrow night.
There were no such problems for Real Madrid, who are now a point better off than their fierce Catalan rivals courtesy of a comfortable 4-0 home win over second-bottom Almeria.
Again operating without injured talisman Cristiano Ronaldo due to a knee injury, Real threatened to break the deadlock long before a 28th-minute opener from the impressive Angel Di Maria.
Gareth Bale, Isco and substitute Alvaro Morata completed the scoring on a significant night for Carlo Ancelotti's team.
Celta Vigo twice came from behind at home, despite being reduced to 10 men early in the second half, to claim a valuable 2-2 draw against Real Sociedad, easing their relegation fears.
The visitors twice hit the front through Sergio Canales and Antoine Griezmann, the latter's strike coming soon after Nolito's 37th-minute penalty.
Celta defender Jon Aurtenetxe then received his marching orders three minutes into the second half to put the home side under serious pressure but Santiago Min earned a share of the spoils in the 82nd minute.
That result meant Villarreal moved above Sociedad into sixth with a dramatic late win over Levante, while Celta rose to 12th with 37 points - five spots and six points clear of the relegation zone.
A 0-0 draw appeared on the cards at Villarreal's Camp El Madrigal until Jeremy Perbet headed home Manuel Trigueros' free-kick for the hosts in the fifth minute of stoppage time.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.