Sporting CP have booked their place in the quarter-finals of the Europa League thanks to a 3-2 aggregate win over Viktoria Plzen, as Rodrigo Battaglia got the vital goal in extra-time in Thursday's 2-1 defeat.
The Portuguese side's luck appeared to have deserted them when Bas Dost saw a penalty saved in second-half stoppage time, sending the game to extra-time after Marek Bakos' brace had wiped out Sporting's 2-0 lead from the first leg.
But Jorge Jesus' men stepped things up a notch in the first half of extra-time, making the most of their superiority with Battaglia's header on the stroke of the interval, and Plzen - who needed another two goals in response - were left deflated.
It took the home side just six minutes to pull themselves back into the tie, as Bakos headed in at the far post following a fine Jan Kovarik cross from deep on the left flank.
However, Sporting did a good job of restricting their flow of further chances, and they should have drawn level just before the break - Bryan Ruiz slamming a left-footed volley wide from about eight yards out.
Sporting missed another glorious opportunity early in the second half.
Bruno Fernandes' long-range strike was parried to Marcos Acuna, whose follow-up effort bounced back off the right-hand post before he then hit the rebound over.
And Plzen capitalised just after the hour mark - Bakos sweeping into the bottom-right corner from just out the six-yard box following Radim Reznik's pinpoint cut-back.
Dost was presented with the perfect chance to get a vital away goal right at the end of normal time, but his tame penalty - which he had won - was easily saved by Plzen goalkeeper Ales Hruska, securing extra-time for the hosts.
Sporting's progression, though, was ultimately sealed just before half-time in extra-time, as Battaglia headed in Fernandes' cross, taking Sporting into the last eight.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.