Kei Nishikori battled past second seed Marin Cilic in Monte Carlo on Friday to reach his first Masters semi-final since July 2016.
The 28-year-old only returned from a four-month spell on the sidelines with a right wrist injury in January, but continued his excellent run in Monaco by beating Cilic 6-4, 6-7 (1/7), 6-3.
Nishikori, who lost his only Grand Slam final to Cilic at the 2014 US Open, moves into a last-four clash with either Richard Gasquet or Alexander Zverev.
The Japanese was strong on serve from the outset, making a single break in a lengthy fifth game before securing the first set as Cilic found the net with a backhand.
Cilic saved five break points in the third game of the second set with some trademark big serving, following the hold with his first break of the Nishikori serve.
But he needed treatment on his right knee after the first point of the next game, and was broken straight back.
Nishikori continued to be the more consistent player, but he wasted three match points when serving for a semi-final place at 5-4.
And Cilic stormed through the tie-break as Nishikori lost his range.
The former world number four showed great resolve, though, and dug deep before breaking Cilic in the eighth game of the deciding set and clinching victory as the Croatian found the net.