Novak Djokovic beat Roger Federer in the headline semi-final to set up a showdown on Sunday with Rafael Nadal for the Rome Masters.
Defending champion Djokovic beat a weary-looking Federer 6-2 7-6 (7/4) on the clay in Rome, the last major tournament before the French Open, which begins at Roland Garros next weekend.
The world number one broke serve twice in a one-sided opening set and when he edged ahead again with a break in the second it seemed Djokovic would win with ease.
There was a flicker of a fight left in Federer and he saved a match point at 5-4 down with a big forehand across court that seemed to clip the outside of a sideline.
Federer managed to break serve in that game to bring the set back to 5-5, and forced a tie-break.
But once Djokovic inched in front by claiming an immediate mini-break and backing it up on his next two service points, Federer was staring at defeat.
The Swiss defended his serve but there was no denying Djokovic this time as he wrapped up victory.
Earlier Nadal beat his fellow Spaniard David Ferrer in a contrasting manner, coming through 7-6 (8/6) 6-0.
And Sunday's match will be a repeat of last year's final, when for the first time, after five previous triumphs, Nadal lost in a title match at the tournament.
Nadal struggled through a gruelling opening set against Ferrer in which he faced a flurry of break points yet dropped just one game on serve.
Ferrer's chance had disappeared when the tie-break went Nadal's way, and the second set was far less evenly contested.
"It was unbelievable how David started, he had great rhythm, no errors, was playing aggressive and moving well," said Nadal.
"All I could do was try to keep the score close as I thought he could not go on at that level. After the first six or seven games, our levels became more equal.
"It is great to be in another Rome final, the final preparation before Roland Garros."