Daria Kasatkina had progress to the Internazionali d'Italia final in her grasp, but Ons Jabeur struck back to set up a showdown with Iga Swiatek.
World number one Swiatek saw off Aryna Sabalenka in Saturday's other semi-final, and it is Tunisia's Jabeur who will meet her on Sunday.
Jabeur had to do things the hard way, saving a matchpoint in the deciding set before going on to prevail 6-4 1-6 7-5.
The victory is Jabeur's 11th in a row and sends the 27-year-old into her second final in the space of a week following her win in Madrid.
Jabeur started strong with an immediate break of serve, yet Kasatkina stubbornly fought back with two breaks of her own.
However, a slip up from the Russian at 3-1 up allowed Jabeur to drag herself back into the set before she broke again to win it.
The momentum swung the other way as Kasatkina dominated the second set to force a decider, in which Jabeur's steel was on full show as she sealed a fourth straight win over the world number 23 with a sublime drop-shot.
Jabeur has now won 17 matches on clay in 2022, more than any other player on the WTA Tour, while she is the first to reach three finals on dirt in the same season since Simona Halep did so in 2017.
Should she overcome Swiatek – who is herself on a remarkable 27-match winning run – Jabeur will become the third player to win the Madrid and Rome titles in a single year. Dinara Safina in 2009 and Serena Williams in 2013 are the others to have managed that feat.