Barcelona’s hopes of retaining their La Liga title suffered a major setback with a surprise loss at lowly Granada.
Algeria midfielder Yacine Brahimi hit the winner, holding off Martin Montoya before finding the net.
Granada keeper Orestis Karnezis pushed out Lionel Messi’s beautifully-flighted free-kick before saving at the feet of Sergio Busquets as Barca pressed.
Leaders Atletico Madrid will move four points clear of Barca if they win at relegation-threatened Getafe on Sunday.
Barca drop to third, with five matches remaining, after Real Madrid eased to a 4-0 win over second-bottom Almeria at the Bernabeu.
The Catalans knew they would provisionally move top of La Liga with a win that most expected them to earn at Granada.
Granada’s long wait
Granada’s last league victory over Barcelona came back in the 1971-72 season – a 2-0 win.
But, despite enjoying over 80% of the possession, they were unable to cancel out Brahimi’s early opener, adding further misery to an already wretched week.
Fresh from their Champions League exit at the hands of Atletico, Barca found themselves trailing when the Algeria international outpaced Montoya before beating goalkeeper Jose Manuel Pinto with a powerful angled drive.
The visitors upped the tempo with Karnezis pushing Neymar’s curling effort wide and Cesc Fabregas having a shot blocked by Granada’s on-loan Liverpool defender Tiago Ilori.
After the break, Barca continued to pin back the hosts with an equaliser seemingly almost a matter of time.
But Gerardo Martino’s men could not find a way past Granada’s inspired goalkeeper Karnezis. The Greece international showed superb reactions to push away Fabregas’ first-time shot, before clawing out a 20-yard free-kick from the largely anonymous Messi.
Then, he bravely dived at the feet of Busquets in the six-yard box following a corner.
With Barca pouring forward, Granada almost netted a second in the final moments as Youssef El Arabi raced clear on the counter before being denied by Pinto in a one-on-one situation.
But it mattered little as Barcelona, who face Real Madrid in the Copa Del Rey final on Wednesday, suffered a second straight defeat.