Defending champion Rafael Nadal will play Novak Djokovic in a meeting of the world's top two players at the Italian Open on Sunday.
Top seed Nadal followed up by brushing aside Grigor Dimitrov 6-2 6-2 in the semis.
Djokovic, the second seed, had earlier fought his way past big-serving Milos Raonic 6-7 (5-7) 7-6 (7-4) 6-3.
World number one Serena Williams and Italian 10th seed Sara Errani will contest the women's final.
Errani thrilled the home crowd with a surprise 6-3 7-5 victory against sixth seed Jelena Jankovic to become the first Italian to reach the final since Raffaella Reggi in 1985.
"I've never felt something like this before," said the 27-year-old. "The crowd were giving me so much support that it almost put me off."
Williams, 32, gained revenge for her Australian Open fourth-round defeat by Ana Ivanovic with a 6-1 3-6 6-1 win over the Serbian 11th seed.
Djokovic needed three hours to get past Canadian eighth seed Raonic, who fired down 17 aces to the Serb's three.
"It's a big win because it gives me strength and belief that I can hopefully carry towards the final and the rest the season," said Djokovic, aiming for a third Rome title.
"I can't remember the last time I felt so helpless in a return game. I couldn't predict his serve at all."
Nadal enjoyed his most straightforward win of the week, coming through in two sets for the first time as Dimitrov failed to make a dent on the seven-time champion's defences.
"I played a solid match and was very good with my backhand. It was good confirmation that I play better. The forehand starts to fly again, the top spins as well - a lot of positive things," said Nadal.
He will take on Djokovic for the 41st time on Sunday, with the Spaniard leading 22-18 overall but Djokovic 7-4 up in ATP Masters finals.
"Djokovic always plays unbelievable, he's a complete player and has all the shots," added Nadal.
"If I want to have chances to win I have to play my best tennis. It will be a very tough match. I have to be ready for the competition."