Match ends, Villarreal 0, Barcelona 1.
Teenage substitute Sandro Ramirez scored his first Barcelona goal as the Spanish runners-up snatched a late win at La Liga rivals Villarreal.
The Catalans dominated throughout but could not find a breakthrough until 18-year-old forward Sandro tapped in.
They hit the woodwork before half-time when Lionel Messi's free-kick was pushed onto the post by Sergio Asenjo.
But Villarreal almost took the lead against the run of play when Tomas Pina's angled drive hit the post.
The visitors controlled possession and territory but looked set to be frustrated against a Villarreal side which finished a credible sixth on their return to the Spanish top flight last season.
That was until Sandro, another product of Barca's La Masia academy, gleefully tucked in a loose ball after Messi was denied from a tight angle.
The Spain youth international's winner means Barca have taken maximum points from their two La Liga matches under new boss Luis Enrique.
Former Barca player Enrique appears to be asking his players to play their trademark possession-based game at a higher tempo than they did under his predecessor Tata Martino.
But for a long time, it did not look as though Villarreal would tire and allow themselves to be prised open by the visitors.
Unsurprisingly, four-time world player of the year Messi was the focal point of Barca's brightest attacking play, creating a host of chances before providing the assist for Sandro.
Barca right-back Dani Alves, who ate a banana thrown on to the pitch in this fixture last season, was jeered by Villarreal fans throughout.
- 2Perez Martinez
- 18Costa JordáSubstituted forGabrielat 59'minutes
- 14Trigueros Muñoz
- 10Gracia CalmacheSubstituted forEspinosaat 70'minutes
- 9G dos Santos
- 17CheryshevSubstituted forViettoat 65'minutes
- 19Gómez Bardonado
- 23Moreno Balagueró
- 25Sánchez Martínez
- 22Alves da SilvaBooked at 42mins
- 12RafinhaSubstituted forHernándezat 75'minutes
- 7PedroBooked at 37minsSubstituted forRamírezat 70'minutes
- 31El HaddadiSubstituted forNeymarat 59'minutes
- 20Roberto Carnicer
- Carlos Velasco Carballo
- Shots on Target
Second Half ends, Villarreal 0, Barcelona 1.
Lionel Messi (Barcelona) wins a free kick on the right wing.
Foul by Manu Trigueros (Villarreal).
Offside, Barcelona. Jeremy Mathieu tries a through ball, but Neymar is caught offside.
Attempt missed. Neymar (Barcelona) header from the centre of the box is too high. Assisted by Dani Alves with a cross.
Attempt missed. Luciano Vietto (Villarreal) right footed shot from the right side of the box is close, but misses to the right.
Attempt missed. Manu Trigueros (Villarreal) left footed shot from outside the box is just a bit too high. Assisted by Tomás Pina.
Attempt missed. Giovani dos Santos (Villarreal) left footed shot from the left side of the six yard box is close, but misses to the left. Assisted by Mateo Musacchio with a headed pass following a corner.
Corner, Villarreal. Conceded by Gerard Piqué.
Attempt blocked. Luciano Vietto (Villarreal) right footed shot from outside the box is blocked.
Goal! Villarreal 0, Barcelona 1. Sandro Ramírez (Barcelona) left footed shot from very close range to the centre of the goal.
Attempt saved. Lionel Messi (Barcelona) left footed shot from a difficult angle on the right is saved in the centre of the goal.
Attempt blocked. Lionel Messi (Barcelona) left footed shot from the centre of the box is blocked. Assisted by Neymar.
Attempt blocked. Lionel Messi (Barcelona) right footed shot from the centre of the box is blocked. Assisted by Dani Alves.
Corner, Barcelona. Conceded by Víctor Ruiz.
Substitution, Barcelona. Xavi replaces Rafinha.
Corner, Barcelona. Conceded by Gabriel Paulista.
Attempt blocked. Lionel Messi (Barcelona) left footed shot from the centre of the box is blocked. Assisted by Rafinha.
Attempt missed. Javier Espinosa (Villarreal) left footed shot from a difficult angle on the left misses to the right.