Fausto Rossi's strike 17 minutes in was the only goal of the game as Gerardo Martino's men failed to go clear of Real and Atletico Madrid in the Spanish league pursuitBarcelona missed the chance to go top of La Liga and slipped up in the title race by losing 1-0 at Valladolid on Saturday.
The champions were sluggish throughout at Estadio Jose Zorrilla and Fausto Rossi's early goal ensured the initiative at the top is now with Atletico Madrid, who visit Celta Vigo later on Saturday, and Real Madrid, who host Levante on Sunday.
Gerardo Martino's men had very little to shout about in the first half, as Valladolid goalkeeper Diego Marino kept them at bay with several important stops, with Rossi firing the relegation-threatened home side into a 17th-minute lead.
Lionel Messi saw numerous chances saved by Marino, while Neymar spurned a huge opportunity from close-range to level matters in the second half.
Barca piled on the pressure in the latter stages, but their inability to salvage a draw leaves Real Madrid a point clear at the top ahead of their clash with Levante, while Atletico will go second if they win in Vigo.
Valladolid, meanwhile, move out of the relegation zone, overtaking Almeria on goal difference.
The build-up to the game was dominated by the news that Barca captain Carles Puyol will end his 19-year association with the club at the end of the season, and he was left out in favour of the returning Gerard Pique.
Valladolid put the champions under pressure early on as they won several set pieces in the final third, but their dreadful deliveries played into Barca's hands as they looked particularly dangerous on the counterattack.
Messi broke forward after an over-hit Valladolid corner and he eventually got a shot away on the edge of the hosts' area only for Marino to tip it over the crossbar.
Despite Barca's increasing control of the game, Valladolid broke the deadlock in the 17th minute as Rossi pounced on a ricochet inside the area before confidently slotting past Victor Valdes.
Unsurprisingly, the visitors' best opportunity to draw level came through Messi, as the Argentine cut across the edge of the area and drilled a left-footed shot at goal eight minutes before half-time, but once again Marino was equal to it.
The wasteful visitors appeared to have a renewed determination at the start of the second period as Messi raced past Marc Valiente before bursting into the box, but he still could not beat Marino, who saved with his knee.
As the hour mark approached, Valladolid were finding it increasingly difficult to get out of their own half and Neymar should have pulled Barca level in the 58th minute when he blazed over from 10 yards out.
The hosts continued to sit back, challenging Barca to break them down, and almost added a second with six minutes to go as Oscar Gonzalez fired over from Valdet Roma's cutback.
Despite all their late pressure, the Catalans could not find a way through and slipped to their fourth league defeat of the season - a result that sees their grip on their title loosen further.