Rafael Nadal rallied from a set down to ease past Fabio Fognini 4-6, 6-1, 6-2 in the Italian Open quarter-finals on Friday and set up a mouth-watering clash against long-time adversary Novak Djokovic for a place in Sunday's final.
Djokovic plotted a similar path to the Spanish clay-court king when the Serb lost the first set against Japan's Kei Nishikori before recovering to win 2-6, 6-1, 6-3 and seal an open-era record 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 told reporters. "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, who last met Nadal in the semi-finals of the 2017 Madrid Open, was on the back foot early against Nishikori as the Japanese baseliner capitalised on consecutive backhand errors to forge the first break.
Both players are still feeling their way back to full fitness after troublesome long-term injuries, but Djokovic showed more promise ahead of the upcoming French Open in his positive response to falling a set behind.
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.
"It means a lot to me to be able to play the semi-finals of a tournament again. This is what I was looking forward to. It's what I was hoping to achieve."
Meanwhile, defending champion Alexander Zverev beat ninth seed David Goffin of Belgium 6-4, 3-6, 6-3 in the day's final match to remain on course to defend his title after notching up a 12th consecutive victory.
The German, who is the form player on the ATP Tour, 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.
Sharapova edges Ostapenko, to play Halep in semis
Former world number one Maria Sharapova stepped up her French Open preparations with a battling 6-7(6), 6-4, 7-5 win over reigning Roland Garros champion Jelena Ostapenko in the women's singles quarter-finals at the Italian Open.
Sharapova, 31, will play top seed and world number one Simona Halep in the semis after the Romanian crushed Caroline Garcia 6-2, 6-3.
Sharapova produced one of her best performances of the season to overcome her Latvian opponent in a gripping contest lasting three hours and 10 minutes.
Fifth seed Ostapenko saved a set point before edging the opener in a tiebreak but failed to maintain her level in the second as Sharapova forced a decider.
The Russian missed two match points at 5-3, allowing Ostapenko to draw level after 10 games, but Sharapova was not to be denied as she booked a semi-final spot in Rome for the first time in three years.
"It's great to back at this stage," Sharapova said.
"My fans have been so loyal throughout the years and for me to be able to produce this kind of tennis again in front of them is very special."
Estonia's Anett Kontaveit knocked out world number two Caroline Wozniacki 6-3 6-1 to record her second consecutive win over a top-10 opponent.
Kontaveit, who overcame Venus Williams in the last 16, struck 23 winners and broke her Danish opponent's serve six times to wrap up victory in just over an hour.
The world number 26 set up a semi-final battle with defending champion Elina Svitolina of Ukraine, who defeated former world number one Angelique Kerber 6-4, 6-4.