Roger Federer rediscovered some of his best form in a pulsating win over Kei Nishikori to return to the semi-finals of the Shanghai Masters.
The Swiss had looked a bit out of sorts in his first two matches in China but stepped up his level against an experienced opponent in a fiercely competitive clash.
Nishikori remains in the hunt for a place in the ATP Finals – a remarkable achievement considering he dropped down to Challenger level at the start of 2018 as he recovered from a wrist injury – and he played his part in a magnificent spectacle.
But Federer matched the in-form Japanese No. 1, producing some scintillating tennis as he continued the defence of his title with a hard-fought 6-4 7-6 (7-5) win.
The 37-year-old will relish a shot at revenge in his next match against Borna Coric, who defeated Matthew Ebden 7-5 6-4 earlier on Friday.
Coric defeated Federer in the Halle final earlier this year. This will be their first meeting since that shock win on the grass.
Though the Croat is more suited to a hard court, the odds will be stacked against him in Shanghai, particularly if Federer maintains this form.
The match got off to a frantic start.
In a fascinating 10-minute opening game, Federer broke the Japanese with the cruelest of net cords to gain an early advantage.
Despite Nishikori playing some good tennis, a second break followed for the Swiss at 4-1 as he continued to raise his level.
The world No. 12 hit straight back to keep himself alive in the first, but Federer looked after the second break and took a one-set lead.
A sublime backhand winner at the start of the second placed Nishikori under more pressure on break point and he crumbled with a double fault to hand the Swiss the advantage.
The Japanese wouldnt go away without a fight and clawed his way level at 3-3 after another impressive retun game, and took the 20-time Grand Slam champion to a tiebreak.
Despite falling 4-1 down, it was the top seed who ultimately triumphed and he set up a meeting with Coric in the semi-finals.
Novak Djokovic will face Alexander Zverev in the other semi-final.