Rafael Nadal responded to doubts over his form with a straight-set win against sixth seed Alexander Zverev in the Italian Open quarter-finals.
It was a measure of revenge for the second seed, who lost to Zverev in the Madrid quarter-finals last week.
The 34-year-old will now face American world number 47 Reilly Opelka.
Opelka reached the semi-finals of a Masters 1,000 for the first time by beating Argentina's Federico Delbonis.
"I'm surprised, clay's not really my thing, not an American thing, it's probably just a fluke," said Opelka, who entered the tournament on a six-match losing streak.
Later, Serbia's world number one Novak Djokovic faces Greek fifth seed Stefanos Tsitsipas, while Russian seventh seed Andrey Rublev meets Italian Lorenzo Sonego in the final last-eight match.
Nadal overcomes Zverev and a worrying tumble
Nadal is bidding for his first Masters 1,000 title of the season on his favoured clay surface, having lost to Rublev in the Monte Carlo quarter-finals and then going down to Germany's Zverev at the same stage in Madrid.
Other than last year, when Monte Carlo and Madrid were not played because of the Covid-19 pandemic, Nadal has reached at least one of the three clay-court Masters finals in every season since 2005.
With Opelka next, Nadal is the overwhelming favourite to reach Sunday's final after ending a run of three straight defeats against 24-year-old Zverev.
"I'm happy, I played a solid match with not many mistakes," said 20-time Grand Slam champion Nadal. "I was able to control the game a little bit more than Madrid."
There was an injury concern for Nadal, however, when he tumbled to the court in what proved to be the final game of the opening set.
Nadal turned his ankle on a raised service line as he stretched forward for a drop shot and, with the stadium falling silent in concern, was sprawled out on the clay for a few moments afterwards.
He was able to climb to his feet and did not require any treatment, responding by fighting off a break point to hold serve and seal the opening set.
A single break of serve - for a 3-2 lead - was enough for Nadal to clinch the second set and match, although he had to dig deep and remain composed to stop Zverev taking any of seven break points in that set.