Denis Shapovalov will take on Casper Ruud in the Geneva Open final after both won their semi-final bouts in straight sets wins on Friday.
The Spaniard completed his job in straight sets to reach the final in Rome for the 12th time.
The Spaniard also came from a set down against the 22-year-old Canadian to secure a spot in the last eight.
Meanwhile, Wesley Koolhof and Kevin Krawietz advanced to the BMW Open final in Munich.