Samuel Chukwueze played all 90 minutes but could not stop Barcelona from beating Villarreal.
Villarreal went down too early at the Nou camp as Antoine Griezmann flicked in a corner with his head.
Arthur Melo made it 2-0 with a sublime effort from way out before former Arsenal Midfielder Santi Cazorla pulled one back for Villarreal.
Chukwueze had his chances, but the Barcelona defence line avoided a repeat of what happened last season when Chukwueze took them by storm and scored a goal on their way to a 4-4 draw.
Gerard Pique and Lenglet were aware of the danger a free Chukwueze could cause, and manage to keep the winger quite on Tuesday night.