Rafael Nadal reached his third Masters Series final in a row with a tough victory over David Ferrer in Rome. The 18-year-old, a finalist in Miami and champion in Monte Carlo, saw off his fellow Spaniard 4-6 6-4 7-5.
Nadal will meet Guillermo Coria - who beat Andre Agassi 7-5, 7-6 (7-0) - in a rematch of the Monte Carlo final.
In that match Nadal won in four sets, though he lost the third set to love. The victory was part of a 16-match winning streak dating back to 8 April.
Nadal had wanted to play Agassi, who he has never faced.
The American looked like he might stage a comeback against Coria after losing the first set, when his own good sportsmanship cost him dear.
He was on the verge of evening the match with Coria when he served for the second set at 5-3.
On the second point of the game Agassi overruled a line judge and Coria replayed the point, which he won and went on to take the game.
Coria then ran away with the deciding game 7-0, using his drop-shot to good effect against the 35-year-old.
"Agassi is my idol and I wasn't just playing him, but the crowd as well, all of whom wanted him to win," said Coria.
The final, which starts at 1430 BST on Sunday, promises to be a marathon affair between two accomplished baseliners, though Nadal admits he has been suffering from fatigue.
"I felt a little bit tired, both mentally and physically but I fought for every ball," he said.
It was the second match in a row in which the teenager had dropped the first set before recovering to win.
"There was no difference between us. I was just pleased because I finished the match with my best play of the day."
Both players struggled to hold serve in the second and third sets and Nadal failed to convert his first two match points while serving at 5-4 in the third set.
However, two games later Ferrer floated a forehand over the baseline and Nadal dropped to his knees and raised his arms to celebrate a victory in two hours 29 minutes.