Alexander Zverev has taken another big step towards a second Grand Slam title by beating Dutchman Botic van de Zandschulp 6-2 7-5 6-1 to reach the US Open semi-finals, where the German will take on Karen Khachanov.
The 29-year-old French Open champion got off to a slow start in his campaign at Flushing Meadows but has steadily found his range.
"I think you saw in the first two rounds, I really didn't play well," Zverev said.
"In other tournaments I would be out in the first round, but here I can fight back and play best of five sets, play 4-1/2 hours. I've started playing better throughout the tournament, and I'm definitely happy to be in the semi-finals here."
Zverev was far from steady on serve early on at Arthur Ashe Stadium, coughing up five double faults in an erratic start, but van de Zandschulp leaked forehand errors to allow the top seed to break in the fifth game and then take the first set.
Van de Zandschulp regrouped in the second set and came close to levelling the contest, but Zverev absorbed the pressure and reeled off three games in a row towards the end as the momentum swung firmly in the German's favour.
Zverev, the 2020 runner-up, fired an overhead smash to break early in the third set and cruised home from there to reach his third semi-final in New York.
With 23 Grand Slam match wins this year, Zverev surpassed Boris Becker's German men's record of 22 from 1989.
He next faces Russian Khachanov in a rematch of their gold medal showdown at the Tokyo Olympics in 2021.

India cruise past Afghanistan as Sharma blitz earns series lead
Haaland strike gives Man City 1-0 win over Man United after Foden sent off
Antonelli stretches lead as Madring's first F1 winner
Lamine Yamal double helps Barcelona beat Levante
Ruthless Rybakina dethrones Sabalenka to capture first US Open crown
