Villa was flanked by Iniesta and Lionel Messi up front as he faced his former club for the first time since his summer move from Mestalla.
The Spain striker was lively in the first half and his cutback halfway through the first period only needed a touch but Valencia cleared their lines.
Xavi then tested Cesar with a stinging drive from the edge of the box and Villa flashed a left-footed effort across goal nine minutes before half-time.
Barcelona had looked far from convincing, though, as they struggled once again in front of their own fans.
The Catalans, virtually untouchable at the Nou Camp over the last two seasons, had won just one of their three home matches in the league prior to this encounter.
And they were struggling again as Pablo gave Valencia the lead after 37 minutes.
Jeremy Mathieu charged into the area and looked set to shoot from a narrow angle, but the full-back cleverly pulled the ball back for the arriving Pablo, whose shot was palmed by Victor Valdes but ended up in the back of the net.
And Pablo almost made it two four minutes later, when he was set up by Roberto Soldado and found himself completely unmarked in the area, but this time Valdes made a fine save to deny the midfielder.
Messi then got the ball stuck under his feet on the stroke of half-time when he should have drilled home a straightforward leveller, but Barca did equalise just after the break.
And Iniesta, not prolific but a scorer of important goals for both club and country, was the man to get it.
The Spain midfielder played a sublime one-two with Xavi, running on to his team-mate’s perfectly weighted pass before drilling a low angled shot past Cesar.
With their confidence restored and parity achieved, Barca dominated after that.
Villa’s dangerous pass was cleared by Jordi Alba moments later and the striker saw his header brilliantly saved by Cesar just short of the hour.
But the Valencia keeper could do nothing to stop Puyol’s bullet header from giving the Catalans the lead following Xavi’s inch-perfect cross after 62 minutes.
Cesar then saved superbly at Villa’s feet as a goal continued to elude the Barca striker against his former team-mates.
Villa was left frustrated in the end and made way late on for Pedro, who was making his comeback just two weeks after suffering a hamstring injury.
Pedro shot straight at Cesar in the dying seconds and Messi saw a strike ruled out for offside, but Barca were comfortable in the end.