Holders Sevilla remain on track for a third straight Europa League title after beating Shakhtar Donetsk 3-1 at the Ramon Sanchez Pizjuan and 5-3 on aggregate to pave the way for a final against Liverpool.
Kevin Gameiro gave the four-time champions an early lead, pouncing on a loose pass to run through on goal and finish well.
Eduardo da Silva got Shakhtar back level just before half-time, the striker beating David Soria from close range after a stunning Marlos run.
Sevilla edged ahead again shortly after half-time, Gameiro on target once more from a tight angle after Grzegorz Krychowiak sent him through on goal.
And a stunning goal by Mariano, his first for Sevilla, put the tie out of Shakhtar's reach, the defender unleashing a rasping shot from 25 yards that swerved just inside the post.
Unai Emery's men become the first team since Juventus in 1998 to reach three successive European finals and will face Liverpool in the Basel decider on May 18.
Sevilla, already in a dominant position thanks to their two away goals in the first leg in Lviv, took the lead after seven minutes.
Sloppy Shakhtar passing and a loose touch from Maksim Malyshev let in Gameiro, the France international running clear and slotting home through the legs of goalkeeper Andriy Pyatov.
The visitors, Uefa Cup winners in 2009, went close to equalising after 23 minutes when Ismaily fizzed a shot across the face of goal.
Krychowiak headed Ever Banega's free-kick narrowly over the angle after 41 minutes, but Shakhtar then levelled the scores on the night with a terrific break.
Marlos, who was on target in the first leg, did superbly to open up a backtracking Sevilla defence with a fabulous solo run, before slipping in Eduardo to score his 10th goal in 15 games for Shakhtar.
But within two minutes of the restart, Gameiro struck to put Sevilla back in the lead.
Krychowiak's throughball was perfect for Gameiro, who rounded Pyatov and finished into an empty net despite a rapidly narrowing angle to score his seventh goal in the competition this season.
Gameiro went close to recording his hat-trick with a spectacular bicycle kick that flew over, then Sevilla scored the decisive third goal after 58 minutes.
Mariano advanced from full-back and hit a wonderful swerving strike from outside the box with the outside of his foot that gave Pyatov no chance.
Eduardo had a golden chance to get his side back in the game after 71 minutes, but the striker steered a header from Darijo Srna's pinpoint cross just wide of the post.
Sevilla held on to record their 12th win in 13 home Europa League games to mark Emery's 100th European game as a coach in fine style and book a showpiece clash with Liverpool.