Rafael Nadal reached his first Italian Open semi-final since 2014 with a hard-fought victory against home player Fabio Fognini in Rome.
The Spanish world number two won 4-6 6-1 6-2 to set up a last-four clash with either Novak Djokovic or Kei Nishikori.
Nadal, who has lost twice to Fognini on clay, took his second match point to win in two hours and 14 minutes.
Seven-time champion Nadal needs to win the Masters title to reclaim the world number one spot from Roger Federer.
Fognini, ranked 21st in the world, fought back from a 4-1 deficit to take the first set, but could not sustain that level of play as Nadal’s quality shone through.
Serbia’s 12-time Grand Slam champion Djokovic meets Japan’s Nishikori later on Friday.
German second seed and defending champion Alexander Zverev, who beat British number one Kyle Edmund in the last 16, faces Belgium David Goffin, while Croatian fourth seed Marin Cilic meets Spain’s Pablo Carreno Busta.