Lionel Messi scored twice as Athletic Bilbao lost their second Copa del Rey final in a month with Barcelona cruising to a 4-0 win in Seville.
Real Sociedad beat their local rivals 1-0 in the rescheduled 2020 Copa del Rey final on April 3 to get their hands on a major trophy for the first time since 1987.
On that occasion, Sociedad captain Mikel Oyarzabal netted the winner by sending keeper Unai Simon the wrong way from the penalty spot in the 63rd minute after strike partner Portu was felled in the area by Athletic defender Inigo Martinez.
And further heartache came on Saturday as Ronald Koeman collected his first piece of silverware since taking charge at the Nou Camp last summer.
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 minute, 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 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 per cent 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.
Musiala goals send Bayern closer to title
Teenager Jamal Musiala scored twice in the first half to steer Bayern Munich to a nervous 3-2 victory at third-placed VfL Wolfsburg on Saturday to move seven points clear at the top of the Bundesliga with five matches left to play.
Three days after their Champions League quarter-final elimination by Paris Saint-Germain, the Bavarians made almost certain of their first silverware of the season after RB Leipzig stumbled to a goalless draw against Hoffenheim on Friday.
Musiala put the visitors in front after 15 minutes when he weaved his way through three defenders in the box and fired in.
The 18-year-old Germany international then added another with a looping header in the 37th to make it 3-1 and become the youngest player in Bundesliga history to have scored six league goals. He came close to a hat-trick a little later but his effort was cleared on the line.
Eric Maxim Choupo-Moting had doubled Bayern's lead in the 24th, but Wolfsburg's top striker Wout Weghorst cut the deficit in the 35th with his 19th goal of the campaign.
The Wolves pulled another goal back in the 54th with Maximilian Philipp but missed several chances to level through Weghorst and a Jerome Roussillon shot in the 84th minute that flew just wide of keeper Manuel Neuer's post.
Bayern, on track for a record-extending ninth straight league crown, are on 68 points, with RB Leipzig in second place on 61.
Wolfsburg held on to third spot on 54 points despite their defeat after Eintracht Frankfurt's 4-0 loss to Borussia Monchengladbach that left them a point behind the Wolves in fourth.
Elsewhere, Bayer Leverkusen's Leon Bailey scored twice and set up another goal as his team eased past Cologne 3-0 on Saturday to keep alive their slim hopes of a top-four finish with five matches remaining in the Bundesliga.
Last-placed Schalke 04 slumped to a 4-0 loss at Freiburg that all but sealed their relegation. The Royal Blues are 13 points behind the relegation play-off spot occupied by Hertha Berlin with five games left.