World number two Novak Djokovic is through to the Italian Open final after losing just one game against Dominic Thiem in Rome.
The 29-year-old Serb beat Austrian Thiem 6-1 6-0 in 59 minutes.
Djokovic will meet Alexander Zverev, 20, in Sunday’s final after the German beat John Isner 6-4 6-7 (5-7) 6-1.
Meanwhile, French Open champion Garbine Muguruza retired from her semi-final against Ukraine’s Elina Svitolina with a neck injury.
Svitolina will face Simona Halep in the women’s final on Sunday after the Romanian beat Kiki Bertens.
It was a second appearance of the day for Djokovic, having earlier beaten Argentine Juan Martin del Potro 6-1 6-4 in a rain-affected match carried over from Friday.
There was little sign of fatigue as the men’s French Open champion looked back to his best, serving well and hitting ruthless ground strokes as he raced away with the first set against 23-year-old Thiem.
Thiem, who knocked out Rafael Nadal on Friday, struggled to find any rhythm in the second set as Djokovic broke his opponent’s serve three more times to see out a convincing win.
Zverev, currently ranked 17 in the world, dominated the first set against Isner, 32, winning it in just under half an hour.
Isner levelled the match after a second-set tie-break, but Zverev resumed control, comfortably winning the deciding set.
He guarantees himself a world ranking of 14 but, should he upset Djokovic in the final, he will move into the world’s top 10.
At 20 years and one month, Zverev becomes the youngest Masters finalist since Djokovic himself won the 2007 Miami Open.
Halep, 25, booked her place in the final with a 7-5 6-1 win over 25-year-old Dutchwoman Bertens.
After a hard-fought first set, Halep won the second more convincingly to complete the victory in one hour and 17 minutes.
Svitolina, 22, advanced after Muguruza called the trainer 22 minutes into the match.
Muguruza, who upset Serena Williams to win the French Open last year, will be hoping to recover in time to defend her title at Roland Garros with the second Grand Slam of the year beginning on 28 May.