Antoine Griezmann put a dominant Barca ahead on the hour when he turned in a cross from Frenkie de Jong, who then doubled the Catalans’ lead three minutes later.
Messi received some rough tackles from Athletic but got his revenge with a spectacular goal in the 68th, tearing his way through Athletic’s defence down the right wing and combining with De Jong before dancing around another defender to slot into the net.
Barca’s captain struck again four minutes later when he met a low cross from Jordi Alba and fired into the bottom corner, his shot proving too powerful for Athletic keeper Unai Simon.
There was a strong sense of deja vu for Athletic, who have now lost four Copa del Rey finals to Barca since 2009, with Messi scoring each time.
The Basques have lost their last six appearances in the final and only two weeks ago were beaten 1-0 by Real Sociedad in the 2020 rescheduled showpiece, which was also played at an empty La Cartuja stadium in Seville.
Barca were hurting from last week’s 2-1 loss to Real Madrid but took the initiative with 79% of possession in the first half and almost went ahead when De Jong struck the post early in the game, with Messi later smashing a shot just wide.
Athletic had beaten Barca 2-1 after extra time in January’s Spanish Super Cup final but showed little ambition here and had only one attempt in the first half, when defender Inigo Martinez prodded just wide of the near post following a free kick.
Athletic keeper Simon pulled off three impressive saves in quick succession early in the first half, using his left leg to thwart Griezmann and then Sergio Busquets from point-blank range while also keeping out a driven shot from Pedri.
Griezmann finally got the better of Simon to break the deadlock and once Barca were ahead they showed no mercy.