Pedri came off the bench to score the winner as Barcelona extended their lead at the top of La Liga to six points with a slender win over Girona.
The 20-year-old, who was playing his 100th game in all competitions for Barcelona, tapped home from four yards after Jordi Alba’s cross was fumbled by Fulham loanee Paulo Gazzaniga.
The win extends Barcelona’s unbeaten run to nine league games.
They have 47 points with Real Madrid, who have a game in hand, on 41 points.
Real Madrid host Real Sociedad on Sunday at 20:00 GMT.
Girona, who only had two shots on target late in normal time, are 12th, four points clear of the relegation zone.
They had manager Michel sent off in second-half stoppage time after his protests for a foul by Barcelona midfielder Frenkie de Jong.
Barcelona were without Poland striker Robert Lewandowski and Spain forward Ferran Torres through suspension and lacked potency in the forward areas.
France winger Ousmane Dembele also went off in the first half, with what looked like a thigh injury.
Xavi’s side are unbeaten in La Liga since losing 3-1 to Real Madrid on 16 October – winning eight and drawing once – and are unbeaten in 13 games in all competitions.
They are looking to win La Liga for the first time since 2018-19.