Efter en mållös första halvlek var det Valencia som tog ledningen i den 50:e minuten när Gabriel Paulista nickade in en hörna.
Men Barça, som var piskade att vinna för att hålla någorlunda liv i titelstriden, skulle ta sig tillbaka. Lionel Messi missade visserligen en straff, men han lyckades revanschera sig och skicka in returen.
Därefter fixade lagkamraten Antoine Griezmann 2–1-målet innan Messi klev fram på nytt och drygade ut ledningen med en vacker frispark.
Valencias Carlos Soler reducerade i slutminuterna, men närmare än så kom man inte.
Segern innebär att Barcelona går upp på 74 poäng, lika många som Real Madrid, och har två poäng upp till ligaledande Atlético Madrid med fyra omgångar kvar att spela.