Pedri scored the winner as Barcelona moved past Celta Vigo to return to the top of La Liga on goal difference.
The 19-year-old was quicker to react and head home from three yards after Gavi’s cross from the left was cut in for his second goal of the season.
It was a disjointed display from Barca, with Celta pressing from behind, coming closest when Jørgen Strand Larsen’s header was disallowed.
Iago Aspas also saw an effort saved, while Goncalo Paciencia hit the post.
Real Madrid had reached the top of the league 1-0 at Getafe on Saturday.
Both teams have won seven and drawn one from their opening eight league games and face each other in the first El Classico of the season next Sunday (15:15 BST).
Barcelona, who have lost two of their opening three Champions League group games, started strongly with former Manchester City winger Ferran Torres curling well before summer signings Rafinha and Robert Lewandowski saw efforts salvaged .
Xavi’s side lacked cohesion and quality for large parts of the game, while Celta improved after falling behind but failed to show a clinical edge in the final third to earn a deserved point.
Barcelona have now conceded just one goal in the league so far this season and have kept four clean sheets in four home games.
- 1ter Stegen
- 28BaldeSubstituted forRobertoin the 77′minutes
- 18AlbaReservation at 71 minutesSubstituted forGarthiain the 86′minutes
- 30Paez Gavira
- 5BusquetsReserve at 85 minutes
- 8GonzalesSubstituted forde Jongin the 63′minutes
- 22RaphinhaSubstituted forDembelein the 64′minutes
- 11TorresSubstituted forFati Vieirain the 63′minutes
- 10Fati Vieira
- 21de Jong
- 26Peña Sotorres
- 2MalloSubstituted forMingezain the 90+3′minutes
- 15AidooReserve at 70 minutes
- 4NúñezReservation at 61 minutes
- 17Galan Gil
- 8Beltrán Peinado
- 11CerviSubstituted forMendes Paciênciain the 84′minutes
- 28VegaSubstituted forSolariumin the 75′minutes
- 5RodriguezReservation at 71 minutes
- 18Strand LarsenSubstituted forPerezin the 75′minutes
- 10Iago AspasReservation at 90 minutes
- 9Mendes Paciência
- 23de la Torre
- Jose Luis Munuera Montero
End of match, Barcelona 1, Celta Vigo 0.
Yellow card to Iago Aspas (Celta Vigo).
End of second half, Barcelona 1, Celta Vigo 0.
Offside, Celta Vigo. Augusto Solari tries a through ball but Carles Perez is ruled offside.
Foul by Ousmane Dembele (Barcelona).
Javi Galán (Celta Vigo) wins a free kick in the defensive half.
Offside, Celta Vigo. Óscar Rodríguez tries a through ball, but Iago Aspas is ruled offside.
Attempt saved. Unai Nunez (Celta Vigo) header from the center of the box is saved in the center of the goal. With the help of Óscar Rodríguez.
Change for Celta Vigo. Óscar Mingueza replaces Hugo Mallo.
Foul by Robert Lewandowski (Barcelona).
Carles Pérez (Celta Vigo) wins a free kick in the attacking half.
Attempt blocked. Gonçalo Paciência (Celta Vigo) right footed shot from outside the box is blocked. With the help of Carles Pérez.
Attempt saved. Hugo Mallo (Celta Vigo) header from the right side of the box is saved in the bottom right corner.
Attempt blocked. Óscar Rodríguez (Celta Vigo) right footed shot from the center of the box is blocked.
Foul by Marcos Alonso (Barcelona).
Hugo Mallo (Celta Vigo) wins a free kick on the right wing.
Change, Barcelona. Eric Garcia replaces Jordi Alba.
Yellow card to Sergio Busquets (Barcelona) for a bad foul.
Foul by Sergio Busquets (Barcelona).
Gonçalo Paciência (Celta Vigo) wins a free kick in the defensive half.