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 pursuit.
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, which visits Celta Vigo later Saturday, and Real Madrid, which hosts 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 its inability to salvage a draw leaves Real Madrid a point clear at the top ahead of its clash with Levante, while Atletico will go second if it wins in Vigo.
Valladolid, meanwhile, moves out of the relegation zone, overtaking Almeria on goal difference.
The buildup 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 favor of the returning Gerard Pique.
Valladolid put the champions under pressure early as it won several set pieces in the final third, but its dreadful deliveries played into Barca's hands as it 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 halftime, 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 was finding it increasingly difficult to get out of its 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.