The Blagurana started off playing quick exciting football, with Luis Suarez seeing a chance saved well by Alves, while Javier Mascherano, who hasn’t scored a goal for the club since joining in 2010 fired a shot wide.
Messi nearly broke the deadlock in the 15th minute after good work by Suarez but Fabian Orellana blocked his effort on the line.
At the other end Marc-Andre ter Stegen pulled out a fine stop to keep out a vicious Carlos Soler strike, with Valencia looking lively when they got the chance to counter.
Neymar was denied a penalty when Joao Cancelo shoved him in the Valencia area and just a couple of minutes later the visitors were ahead.
Munir broke through from Diego Alves’s goal-kick but Ter Stegen forced the ball behind for a corner—which Eliaquim Mangala headed home in the 29th minute.
Just six minutes later Barcelona were level, when Neymar’s quick throw caught Los Che’s defence napping and Suarez tucked home to equalise.
An exciting first half was taken to an even more thrilling level before the break, when Mangala dragged down Suarez in the area and was sent off, with Messi covering the penalty.
But one minute later and 10-man Valencia were level again, with Jose Gaya breaking and Munir tucking home his cross.
Neymar nearly sent Barcelona back ahead after the break before Messi did, slamming home Mascherano’s pass at the near post with his right foot.
They created several more chances and Andre Gomes eventually added a fourth against his former side, with the win taking them two points behind Madrid at the top, having played a game more than their arch-rivals.