Defending champion Carlos Alcaraz celebrated his 20th birthday on Friday by reaching the Madrid Open final, likening himself to "a bull" in his straight-sets win over Borna Coric.
The world number two was at his best to defeat the Croatian 6-4, 6-3.
He will face Germany's Jan-Lennard Struff, the world number 65, who had originally been knocked out in qualifying before winning a reprieve, in Sunday's final.
Alcaraz said he called upon some of the inner motivation which helped him triumph at the US Open in New York last year when he captured his maiden Grand Slam crown.
"There was a moment when I repeated what I repeated at the US Open, that I'm a bull, and that I could do it, and it helped me," he explained.
Alcaraz, reaching his fourth Masters 1000 final, broke for a 3-2 lead in a tight first set and served it out.
He broke for 2-1 in the second set and after world number 20 Coric immediately hit back, did so again for a 3-2 lead, which he consolidated.
Alcaraz sealed the match with another break when Coric went long, ensuring he reached the final only dropping one set en route, against Emil Ruusuvuori.
The top seed was able to celebrate with a birthday cake, offered to him by the tournament organisers after his victory.
The only dampener for Alcaraz was news that Spanish compatriot and 22-time major winner Rafael Nadal would miss next week's Italian Open through injury.
Nadal hasn't played since the Australian Open in January due to a hip injury and is now a serious doubt for the French Open in three weeks' time and where the 36-year-old has been champion on 14 occasions.
"I hope to see him at Roland Garros 100 percent. The world wants to see him at 100 percent," said Alcaraz.
Struff, 33, made only his second career final by defeating Russia's Aslan Karatsev who had beaten him in qualifying last weekend.
However, having been allocated a place in the main draw after injury pull-outs, Struff avenged that loss in Friday's semi-final.
He came from a set down to see off 121st-ranked Karatsev 4-6, 6-3, 6-4 and become the first 'lucky loser' to go all the way to a Masters final.
Struff, whose only other final appearance resulted in a runner-up finish in Munich in 2021, claimed victory on a fifth match point.
He fired 37 winners including 15 aces in his two-hour, 19-minute win.
"It's amazing," Struff said. "I played one final before in Munich but there was no crowd because of Covid."
Struff and Alcaraz have met twice before – the German winning in straight sets at the French Open in 2021 before the flamboyant Spaniard claimed a five-setter at Wimbledon last year.
"We played an amazing match at Wimbledon and I was very close to beating him but he pulled off unbelievable shots," Struff said.
"This is going to be different. This is in Spain, in Madrid. I think he is 20-0 on Spanish clay courts, so it is going to be very tough. I have to go for it otherwise I will have no chance."
Struff, who upset fifth-ranked Stefanos Tsitsipas in the quarter-finals, was the third lucky loser to reach the semi-finals at a Masters 1000 event, joining Thomas Johansson in Toronto in 2004 and Lucas Pouille in Rome in 2016.
The Madrid women's final between the world number one Iga Swiatek and number two, Aryna Sabalenka, takes place on Saturday.