Great Britain's Dan Evans was beaten in straight sets in the Barcelona Open semi-finals by defending champion Carlos Alcaraz.
Alcaraz, who has yet to drop a set this tournament, won 6-2 6-2 in 81 minutes.
The 19-year-old world number two will play Greece's Stefanos Tsitsipas in the final after he beat Italy's Lorenzo Musetti 6-4 5-7 6-3.
"It's so special to play a final here in Barcelona, a tournament that I love playing," said Alcaraz.
The US Open champion, who missed the Monte Carlo Masters last week because of hand and back problems, is chasing a third title of the season after wins in Buenos Aires and Indian Wells.
Swiatek through after Jabeur retires hurt
Defending champion Iga Swiatek will play Aryna Sabalenka in the Stuttgart Open final for the second successive year after semi-final opponent Ons Jabeur retired hurt.
The world number one was 3-0 ahead in the first set when Tunisian Jabeur was forced to pull out with a calf problem.
"I don't know what Ons' situation is, but I really respect the fact that she came out and she tried and she wanted to see how it's going to go," said French and US Open champion Swiatek.
"I told her we're probably going to play the Roland Garros final, so we'll see each other there. She's a fighter, so she's going to be back quick. I just hope it's nothing serious."
Earlier on Saturday, Australian Open champion Sabalenka beat Russian Anastasia Potapova in straight sets to reach the final in Stuttgart for a third successive year.
The Belarusian world number two, who lost the 2021 final to Ashleigh Barty before being beaten by Swiatek last year, won 6-1 6-2 in just 58 minutes as she chases a third title of the year.