Barcelona failed to stretch their lead at the top of the Liga table to seven points as Celta Vigo held them to a 2-2 draw in a fine match at the Bernabeu.
Lionel Messi created the first moment of danger, picking up a loose ball inside his own half and embarking on a run that eventually brought a corner.
But the visitors stunned the Camp Nou after 20 minutes when Daniel Wass and Iago Aspas combined to set up Maxi Gomez, who was denied by Marc-Andre ter Stegen only for Aspas to volley home the rebound.
Their lead, however, lasted less than two minutes as Luis Suarez and Paulinho set up the unmarked Messi to finish past Ruben Blanco.
Three minutes later Suarez thought he had put the Liga leaders in front, only for an offside flag to deny him after Messi had provided the through ball.
Suarez was then inches away from touching in an Ivan Rakitic cross as Barca began to take control, and with half an hour gone Messi came even closer when his shot hit the outside of the post.
But with seconds remaining until the break, Celta should have re-established their lead when a Pione Sisto cross found Wass, who fired wildly over.
Paulinho had a chance to put Barcelona ahead early in the second period but, after rounding Blanco when put clean through, hit the side netting from an angle.
But they hit the front just after the hour when Suarez touched home a low Jordi Alba cross, and almost made it 3-1 within moments when Messi's header was superbly saved by Blanco.
Twenty minutes from time, however, the scores were level again as Iago Aspas raced down the right, Samuel Umtiti appearing to pull a hamstring as he tried to track him, and his cutback was smashed into the roof of the net by Maxi Gomes.
With a quarter of an hour to play Messi freed Gerard Pique, who became the second Barca player to hit the side netting after rounding Blanco, but visitors Celta still threatened on the break as the match entered its closing stages.
Messi glanced a header wide with the flag up for offside, but three minutes from time ter Stegen had to make a crucial intervention when he stopped Sisto's angled shot.
Paco Alcacer headed over and Messi curled a free kick wide in injury time, but the visitors held on for a deserved point.