Alexander Zverev beat Karen Khachanov in straight sets to reach the US Open final, winning 6-3 7-6 (7) 7-6 (6) on Arthur Ashe Stadium.
The 29-year-old German had played all his previous matches during the night sessions, but his semi-final was scheduled for the afternoon. He has capitalised on the absence of Jannik Sinner and defeats for Carlos Alcaraz and Novak Djokovic, as well as a kind draw, to reach a third consecutive grand slam final.
Zverev spent a record total of 16 hours and 40 minutes on court en route to the last four and took another three hours against Khachanov, having not faced a single player inside the top 20.
Khachanov, a former top-10 player now ranked 50, had knocked out third seed Felix Augur-Aliassime in round two. But Zverev took a tight first set with a solitary break and broke again at the start of the second. A double fault allowed Khachanov back on serve and Zverev became embroiled in a tie-break, at one point trailing 5-3 and only winning it after a 35-shot rally.
The third set went the same way and Khachanov had set points at 6-4, but two wayward forehands and a Zverev ace gave him match point which he took at the first attempt.
Zverev said: "After the second round, at about 3am, we were laughing our asses off about how badly I was playing. Moving forward I was playing better tennis. Obviously I've been improving otherwise I wouldn't be in the final. I'm enjoying it and I can't wait for Sunday."
Having broken his major duck at the French Open before losing the Wimbledon final to Sinner, Zverev now has the chance for a second grand slam title. He can also banish the memory of the 2020 final in New York, where he served for the match against Dominic Thiem but lost in five sets.