Lionel Messi scored twice as Barcelona beat Athletic Bilbao to go third in La Liga.
Athletic took an early lead through Inaki Williams, but teenager Pedri equalised with a header soon after.
Messi, who also hit the post twice, then scored when he collected Pedri’s backheel and shot past Unai Simon.
A powerful first-time shot from Messi made it 3-1 and Barcelona held on for the victory, despite a late 20-yard strike from Athletic’s Iker Muniain.
The win takes Ronald Koeman’s side above Real Sociedad and Villarreal; they are five points behind second-placed Real Madrid and seven adrift of leaders Atletico Madrid, who have two games in hand.
This was the first game for Athletic since Marcelino replaced former head coach Gaizka Garitano, who was sacked hours after Sunday’s 1-0 win over Elche.
Marcelino’s side needed just three minutes to go ahead as Williams sprinted clear, then cut inside defender Clement Lenglet to score.
However, their lead lasted only 11 minutes as Messi’s cross went over Simon’s head and Frenkie de Jong hooked the ball to Pedri to equalise.
Messi’s first goal came just before half time following a one-two with Pedri and he scored his second with a powerful first-time strike following Antoine Griezmann’s square pass.
Argentina forward Messi then gave the ball away and Muniain scored from Alex Berenguer’s pass but it was not enough to deny Barcelona a win.
Since losing 3-0 at home to Juventus in the Champions League on 8 December, Barcelona have gone seven La Liga matches unbeaten, with five wins and two draws.