Lionel Messi returned from suspension to help guide Barcelona to a 2-1 win away to Rayo Vallecano on Wednesday and reach the quarter-finals of the Copa del Rey.
Barcelona dominated the match and hit the woodwork three times but second division Rayo took a surprise lead in the 63rd minute when Barca 'keeper Neto failed to deal with a low cross and midfielder Fran Garcia pounced to bundle the ball over the line.
Rayo went looking for a second goal and were badly caught out on the break when Frenkie de Jong picked out Antoine Griezmann and the Frenchman laid the ball off for Messi to slot into the net from close range in the 70th minute.
The Argentine, who became Barcelona's record appearance maker in the competition with 76 games played, was the architect of the second goal 10 minutes later. He released Jordi Alba down the left wing with a sumptuous pass and De Jong finished off the defender's cross to send the Catalans into the last eight.
Messi should have added a third goal in added time after waltzing his way through the Rayo defence, but when it came to shoot he lost his footing and could only find the side netting.
Elsewhere, Sevilla joined Barcelona in Friday's quarter-final draw by crushing 2019 Copa del Rey winners Valencia 3-0 at home. Almeria sneaked into the last eight with a 5-4 penalty shootout win at home to Osasuna after a 0-0 draw following extra-time.
Coppa Italia - Juventus breeze into next round
Juventus eased past Serie B side SPAL 4-0 to reach the Coppa Italia semi-finals despite resting regulars like Cristiano Ronaldo and Paulo Dybala.
Alvaro Morata and Gianluca Frabotta scored first-half goals for Juventus while Dejan Kulusevski and Federico Chiesa added late strikes. In the two-legged semi-finals, Juventus will face Inter Milan, who eliminated AC Milan in a derby on Tuesday.
Morata converted a penalty after a foul on Adrien Rabiot before Frabotta added the second in the 33rd minute.
Kulusevski scored Juve's third on the counter-attack after being set up by Chiesa, who completed the rout in injury time by dribbling around the goalkeeper and sending the ball into an empty net.
Juventus are seeking a record-extending 14th Coppa Italia title after losing last season's final to Napoli.
Earlier, 10-man Atalanta beat visiting Lazio 3-2 and will next face either Napoli or Spezia, who play on Thursday.
Aleksei Miranchuk scored the winner for Atalanta four minutes after team-mate Jos Luis Palomino was shown a direct red card for a foul on Manuel Lazzari.
Berat Djimsiti and Ruslan Malinovskyi also scored for Atalanta in an entertaining match that included Lazio goals from Vedat Muriqi and Francesco Acerbi.
Atalanta forward Duvan Zapata could have added a fourth goal but had a penalty saved by Pepe Reina.
Ligue 1 - Lorient net late winner
A last-gasp goalkeeping blunder gave Lorient a much-needed 3-2 home win against fellow strugglers Dijon.
Anthony Racioppi saved Andrew Gravillon's header from a free-kick six minutes into injury time, but in doing so he carried the ball over the line and a goal was given following a video review.
The win moved Lorient off the bottom of the table and into 19th place, level on points with Dijon, who are 18th on goal difference.
Trevoh Chalobah, on loan from Chelsea, put Lorient ahead in the 29th minute with a shot that deflected off striker Mama Balde.
Dijon equalised 10 minutes later, when Chalobah failed to clear a free-kick and Bruno Ecuele Manga netted from the ensuing cross, then went ahead when Balde turned in a low cross.
Lorient rallied through striker Terem Moffi, and had a red card for left-back Yoann Etienne reduced to a yellow moments later following a review.