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.