Borja Viguera had given the visitors a shock lead in the 17th minute but Adriano equalised 10 minutes before the break at the Nou Camp.
Villa scored a second-half brace as Tito Vilanova’s side eased to a 6-1 aggregate win to progress to the fifth round. It was the Spain international’s 39th strike for Barca and the seventh of what has so far been a frustrating campaign for the former Valencia frontman.
Barcelona have been wary of overusing Villa, who spent eight months out with a broken tibia, and last night was the first time this season he played the whole game. “I have not played 90 minutes. The 301 goals make you think that you’ve done well and makes you feel proud to have achieved many goals,” the striker said.