Rafael Nadal will face Novak Djokovic in the semi-final blockbuster at the Internazionali BNL d'Italia semi-finals.
Nadal stayed on track to reclaim the world number one ranking after recovering from a set down to defeat Fabio Fognini in their last-eight meeting in Rome.
Djokovic then saw off Kei Nishikori to book what will be a 51st career meeting - an open-era record - against his old foe Nadal.
Nadal, currently ranked two behind another great rival, Roger Federer, beat home favourite Fognini 4-6 6-1 6-2.
The Italian world number 21 threatened an upset as he won the final five games of the first set after trailing 4-1.
But Nadal broke serve at the start of the second set and thereafter was always in control, with Fognini needing treatment for a knee problem before succumbing to defeat.
Djokovic, who is now ranked 18th, also had to come from behind to claim a 2-6 6-1 6-3 victory over Nishikori. It put him through to his first semi-final of 2018.
Alexander Zverev stretched his winning streak to 12 matches with a 6-4 3-6 6-3 victory against David Goffin.
But the German, who lifted the Madrid Masters title last week, saw his streak of 23 consecutive sets won come to an end against Goffin.
Fourth seed Marin Cilic completed the semi-final line up with a 6-3 6-3 win over Spain's Pablo Carreno Busta.