Rafael Nadal has rallied from a set down before easing past Fabio Fognini 4-6 6-1 6-2 in the Italian Open quarter-finals to set up a mouth-watering clash against long-time adversary Novak Djokovic for a place in Sunday's final.
Djokovic meanwhile lost the first set against Japan's Kei Nishikori before recovering to win 2-6 6-1 6-3 and seal a 51st career meeting against Nadal.
Nadal started strongly and raced into a 4-1 lead but Fognini refused to surrender in front of a partisan Rome crowd, clawing a break back before running away with the set.
The Italian's joy was short-lived, however, as Nadal regrouped, charging around the court and putting his opponent under relentless pressure as he took the second set to level things up.
Fognini was then hampered by an injury to his left knee as Nadal continued to fire on all cylinders and the Spaniard duly wrapped up the match in two hours and 14 minutes.
"Having a break early in the second set definitely helped my confidence," Nadal said. "But then, I think, I played more aggressively with my forehand and when I play more aggressively with my forehand, then the backhand becomes better.
"I feel it is an important victory for me. There's a lot of positive things out of the match today."
Djokovic was on the back foot early against Nishikori as the Japanese baseliner capitalised on consecutive backhand errors to forge the first break.
The Serb broke Nishikori three times to force a decider before edging a tight third set with some courageous shot-making.
"Today, the quality of tennis was really high," Djokovic said. "Kei was playing fantastic, especially in the first set... and it took me little bit of time to adjust to his pace."
Meanwhile, defending champion Alexander Zverev beat ninth seed David Goffin of Belgium 6-4 3-6 6-3 to remain on course to defend his title.
The German will battle Croatian Marin Cilic for a place in the final.
Fourth seed Cilic pulled off a regulation 6-3 6-3 victory over Spain's Pablo Carreno Busta earlier in the day.