La Liga Wrap: Home run over for Barcelona
On a day when Spanish football remembered former national team coach Luis Aragones, who died on Saturday, Gerardo Martino's side got off to a fine start as Alexis Sanchez's seventh-minute effort fortuitously beat Valencia keeper Diego Alves and, although they generally dominated the first half, the visitors drew level just before the break.
Dani Parejo finished off a move he started to peg the hosts back and the diminutive Pablo Piatti put Juan Antonio Pizzi's men ahead with a header early in the second half.
Lionel Messi then equalised for Barca from the penalty spot on 54 minutes after Ricardo Costa was adjudged to have handled in the area, ending a run of three matches in all competitions without a goal, but Paco Alcacer guided Sofiane Feghouli's cross past Victor Valdes five minutes later to put Valencia back in front..
Jordi Alba was sent off for the hosts with 12 minutes to go as Valencia held out to become the first La Liga side apart from Real Madrid to leave the Camp Nou with three points since Hercules won 2-0 in September 2010.
The result opens the door for Real and Atletico Madrid to leapfrog Barca in the table with victories in their fixtures on Sunday.
Atletico face Real Sociedad at home before Real travel to Athletic Bilbao.
Malaga climbed to 13th after coming from behind to beat Sevilla.
The hosts went ahead in the 31st minute at La Rosaleda when Duda found the net from the penalty spot after Coke had been penalised for tripping the Portuguese in the box.
Sevilla then fought back to take the lead with goals from Carlos Bacca and Federico Fazio, before Garcia pulled Malaga level.
But, having opened the scoring, Duda had the final say, powering home from inside the penalty area in the 85th minute to snatch all three points for his side.
Tempers flared on the touchline as the match drew to a conclusion, but Sevilla went home empty handed, failing to win for a third consecutive match.
Elsewhere, strugglers Rayo Vallecano and Real Valladolid picked up valuable points in goalless draws at Levante and Getafe respectively.