Messi tees up victory as Barcelona cling on to fading title hopes
Messi teed up Arturo Vidal's winner at Jose Zorilla to become the first player to provide 20 assists in Spain's top flight since Xavi Hernandez in 2009.
Victory for Barca means Real Madrid cannot clinch the title on Monday by beating Granada but only an incredible collapse will prevent them putting their name on the trophy later in the week.
If they beat Granada, Madrid will win La Liga by prevailing at home to Villarreal on Thursday, regardless of Barcelona's results.
Overall, Madrid need only five points from their remaining three matches to secure their third La Liga title in eight years.
"We are doing things that deserve more than where we are," said Barca coach Quique Setien.
"To win La Liga, I don't know, because our rival is winning everything."
Yet even as Barca's turbulent domestic campaign draws to a close, Messi continues to shine.
His delightful pass for Vidal in the 15th minute, a scoop between two Valladolid defenders, triggered more remarkable milestones.
As well as matching the best La Liga total for assists by one player in the last 11 years, Messi extends his own career-best number of assists in a single league season.
- 'Not rocket science' -
He also becomes only the second player in the 21st century from the five major European leagues to hit 20 goals and 20 assists in the same campaign, after Thierry Henry in 2002-03.
Messi has halted negotiations to extend his current contract, which expires in 2021, perhaps to express frustration with the running of the club.
As Barcelona's title challenge has wilted, Setien's position has come under scrutiny too, despite him only taking over in January.
But he was bold against Valladolid, deploying a 3-5-2 formation, with Nelson Semedo and Jordi Alba as wing-backs and the versatile Sergi Roberto dropping into the back three.
Luis Suarez started on the bench but replaced Antoine Griezmann at half-time, the Frenchman enduring one of his quieter displays before having to go off injured.
"He came off because he had a problem," Setien said. "It was him who asked for the change."
After playing Messi behind Suarez and Griezmann against Villarreal on Sunday, Setien appears to be experimenting, perhaps with an eye on the Champions League's resumption next month.
Or he may be making the best of a stretched squad that appears to be feeling the effects of fatigue. Setien only named five outfield players on the bench.
"We've had a lot of games, a lot of wear and a lot of players playing a lot of minutes. It's not rocket science," he said.
"When you're tired, you lose more balls, make bad decisions. It's normal."
The system worked well in the first half but Barca's problem of converting possession into chances remained and Valladolid grew in confidence late on.
Defeat leaves Valladolid 14th but survival looks all-but secured, with seven points between them and the bottom three.
Griezmann snatched at an early finish inside the box before Vidal showed him how it was done.
Messi recovered the ball on the edge of the area and after receiving it back from Semedo, scooped it through to Vidal, who gathered and unleashed all in one movement to find the far corner.
Valladolid's Kike Perez raced clear of Gerard Pique but lost his footing at the crucial moment before Messi weaved through but drove wide.
Marc-Andre ter Stegen had to make two saves in the second half as Valladolid pushed, the first from an Enes Unal header and the second in injury-time, after Sandro Ramirez was allowed space at the back post.
Third-placed Atletico Madrid made sure of their place in the Champions League next season with a 1-0 win over Real Betis despite playing more than half an hour with 10 men.
Diego Costa grabbed the only goal from a Yannick Carrasco free-kick in the 73rd minute after VAR had earlier ruled out two goals.
Atletico full-back Mario Hermoso had been red-carded in the 57th minute.
Earlier, Celta Vigo surrendered a valuable point in the relegation battle by conceding in the 91st-minute to Osasuna, Jose Arnaiz sealing a 2-1 win.
Defeat means Celta stay four points clear of the bottom three but having played a game more than those below them.