Rampant Rafael Nadal stayed on course for a third successive title by beating a tenacious Marin Cilic in straight sets to reach the final of the Shanghai Masters.
The world number one claimed the US Open and China Open titles in his last two tournaments and stands on the brink of a first Shanghai triumph after seeing off Cilic 7-5 7-6 (7-3) on Saturday.
Nadal has now won 16 consecutive matches and will face old foe Roger Federer or Juan Martin del Potro in the final following a fifth success in a row over Cilic, who has not beaten the Spaniard since their first encounter eight years ago and is still not assured of a place in the ATP World Tour Finals.
Top seed Nadal can claim a 31st ATP Masters 1000 title if he wins Sunday's showdown, which would break a record he currently shares with Novak Djokovic.
Cilic had not dropped a set this week, but the fourth seed came under immediate pressure as he saved three points in the first game before securing a battling hold and another three in his next service game.
The world number five weathered the storm and a rasping forehand winner earned him two set points, but Nadal's serve got him out of trouble and the 16-time grand slam champion saved another set point before holding to level at 5-5.
It was Nadal who took the upper hand when a wayward backhand from the 2014 US Open champion gifted him two break points and the Croatian drilled a backhand into the net to go a set down.
Cilic was up against it in the second after making a mess of a couple of volleys at the net to find himself a break down at 2-1, but Nadal was furious with himself after relinquishing his advantage to be pegged back at 3-3 following a poor volley of his own.
Nadal pumped his fist after treating the crowd to a sumptuous forehand winner down the line on the run as he broke again to lead 5-4, but Cilic saved a match point and let out a roar after unleashing two brutal forehand winners to break back and keep the contest alive.
Cilic was unable to force a deciding set, though, Nadal claiming three mini-breaks in the tie-break to ensure he has won all 10 semi-finals he has played in this season.