Novak Djokovic overcame having to play twice in a day and romped into the Rome Masters final with a 6-1 6-0 drubbing of Dominic Thiem. The Serb will play German rising star Alexander Zverev in Sunday's showpiece.
Djokovic, the four-time champion, was forced to finish his quarterfinal over Juan Martin del Potro earlier in the day after their match was rained off late on Friday.
But the setback seemed only to inspire the 30-year-old second seed, as he set up what is expected to be a mouthwatering final, and first meeting, with Zverev.
"It was my best performance of the year," said Djokovic after his 59-minute win over Thiem, who had stunned clay king Rafa Nadal in the quarterfinals.
Zverev earlier won a battle of the giants to down unseeded American John Isner 6-4 6-7(5) 6-1 to reach his debut Masters final.
The 20-year-old German's victory made him the youngest ATP Masters 1000 finalist since a 19-year-old Djokovic in Miami in 2007.
Zverev had looked like wrapping up the match in straight sets after romping through the opener in under half an hour, but a defiant Isner forced a rethink when he took the second set down to a tiebreak.
The German was 5-0 down in the tiebreak but battled back before Isner took the match to a third set with a forehand winner.
Isner, the first American to reach the semi-finals in Rome since Andy Roddick in 2008, had a chance to break with Zverev leading 3-1 in the final set but the German snuffed out the challenge.
In the women's event, French Open champion Garbine Muguruza retired with a neck injury, with Ukraine's Elina Svitolina going through to a final against Romania's sixth seed Simona Halep.
Spaniard Muguruza called her trainer and then a doctor 22 minutes into her semi-final with Svitolina leading 4-1 at the Foro Italico in Rome. It was her fourth retirement of the season after Miami, Brisbane and Dubai.
Halep had earlier made light of heavy conditions to secure a 7-5 6-1 victory over Dutch 15th seed Kiki Bertens.