World number one Novak Djokovic will play Milos Raonic in the final of the Western and Southern Open after edging out Spain's Roberto Bautista Agut in the semi-finals in New York.
Serb Djokovic came from behind to beat the eighth seed 4-6 6-4 7-6 (7-0) and maintain his unbeaten record in 2020.
Canada's Raonic defeated Greek fourth seed Stefanos Tsitsipas 7-6 (7-5) 6-3.
Britain's Jamie Murray and Neal Skupski reached the men's doubles final by beating Joe Salisbury and Rajeev Ram.
They will play Pablo Carreno Busta and Alex de Minaur after overcoming Briton Salisbury and American Ram - the 2020 Australian Open champions - 7-5 6-3.
Djokovic, who won the Western and Southern Open - also known as the Cincinnati Masters - in 2018, got off to an unsatisfactory start against Bautista Agut, twice double-faulting as he lost a set for the first time in this year's tournament.
Although he was still struggling with the neck injury that has plagued him all week, he bounced back in the second set, levelling the match with a break on his second set point.
Djokovic was broken while serving for the match at 5-3 in the deciding set, with Bautista Agut winning four consecutive games to find himself serving for a place in the final, only to be broken once more as Djokovic took the match into a tie-break.
He dominated that from start to finish at Flushing Meadows, wrapping up victory in exactly three hours to extend his winning record this year to 22-0.
"It was a very strange match, I must say," said Djokovic.
"I don't know how I won it, to be honest. He was the better player, I didn't feel good on the court at all in any aspect.
"Somehow I managed to pull this one through."
If he wins Saturday's final, Djokovic, 33, will equal Rafael Nadal's record of 35 ATP Masters 1000 titles.
'I want to go to heights I haven't achieved yet' - Raonic
Little could separate Raonic and Tsitsipas in the opening set of their semi-final, with Raonic taking the early advantage.
He dominated play in the second set, getting the early break before serving the match out to love.
Saturday's match will mark Raonic's first Masters 1000 final in more than four years. That came when he lost to Djokovic at Indian Wells in 2016, the year he reached the Wimbledon final.
"It would be incredible [to win]," the 29-year-old said.
"Just with everything else, I want to go to heights I haven't achieved yet and this is a part of it. This is what I've worked hard for with very clear, specific goals and I hope that I can get that step closer and maybe make a difference tomorrow."
The Western and Southern Open is usually held in Cincinnati but was moved to New York to create a two-tournament safety bubble that also incorporates the US Open, which starts on Monday and is the first Grand Slam since the sport was put on hold by the coronavirus pandemic.