Lionel Messi produced a virtuoso show with two goals as Barcelona moved into third place in LaLiga after a 3-2 win at Athletic Bilbao.
Barcelona were on a six-game unbeaten streak, their longest of the season, but were behind inside three minutes when Inaki Williams fired home from inside the box.
But Pedri quickly levelled and Messi, finding arguably his best form of the campaign, struck either side of the interval to ensure Iker Muniain’s last-minute effort was no more than a consolation.
Bilbao were under the command of new head coach Marcelino for the first time following Gaizka Garitano’s dismissal last weekend.
Marcelino had the perfect start when Raul Garcia freed Williams, who was inside his own half when the ball was played and advanced into the Barcelona box.
Williams easily cut inside Clement Lenglet’s half-hearted challenge and finished with a firm right-footed shot.
Bilbao almost punished Barcelona two minutes later with another lightning counter-attack, Muniain setting up Yuri Berchiche for a shot which hit the side netting.
The sequence you love to see. pic.twitter.com/p5E1aGIjVC
— FC Barcelona (@FCBarcelona) January 6, 2021
The frantic opening continued as Messi and Antoine Griezmann set up Sergino Dest for a chance which was pushed away by Unai Simon.
Williams almost had a second with a near-post effort, but Barcelona levelled after 14 minutes and it was the signal for them to take control.
Messi’s deep cross was allowed to travel unchecked by Simon and Frenkie De Jong hooked the ball back for Pedri to head into a gaping net.
Simon saved from Jordi Alba before Bilbao lost the adventurous full-back Yuri to injury.
The Bilbao goal came under further pressure as Simon held Ousmane Dembele’s drive at the second attempt but Barcelona were ahead after 38 minutes.
Messi found Pedri and followed his pass to stride onto a cute back heel from the Spaniard.
Simon had strayed out of position and Messi slipped the ball inside the near post. At the age of 18 years and 42 days, Pedri became the youngest player to score and assist in a LaLiga game.
Griezmann forced another Simon stop before the break and Messi shot wide and Bilbao were relieved to hear the half-time whistle.
The break served Bilbao well as Williams and Garcia went close after the restart, but Messi was fractionally offside before drilling the ball past Simon.
Messi was really in the mood and struck the frame of the goal from 20 yards before extending Barcelona’s lead after 61 minutes.
Jordi Alba found Griezmann and Messi, having superbly timed his run to the near post, swept home his square pass off the underside of the crossbar.
Messi was denied a hat-trick again as he hit the post for a second time as Barcelona sought to kill off the contest.
Muniain pounced on a Messi error to give Bilbao hope with a crisp finish, but Barcelona survived to reduce the gap on league leaders Atletico Madrid to seven points.