Basel - Reilly Opelka fired 31 aces to reach the fifth semi-final of his career on Friday as he beat Roberto Bautista Agut 6-3, 3-6, 6-3 at the Swiss Indoors.
The 37th-ranked American's victory in 93 minutes also slowed the progress of his Spanish opponent in the chase for one of the two remaining places at the ATP Finals in London next month.
Opelka has reached four of his five semi-finals this season -- most recently at the start of the month in Tokyo -- as the 22-year-old works to broaden his game beyond just a huge serve.
The 6ft 11in (2.11m) giant earned the only title of his career last February at Long Island, New York.
Opelka ended his afternoon when he set up two match points with an ace and then caught Bautista Agut wrong-footed with a winner into the empty court on his first chance.
He will next play Alex de Minaur for a place in the final after the Australian defeated Germany's Jan-Lennard Struff 6-4, 7-6 (7/4).
The 20-year-old wild card, who has trophies from Sydney, Atlanta and Zhuhai this season, dominated his opponent in one and three-quarter hours as he competes in Basel for the first time.
"You have to back yourself," said world number 28 De Minaur after his 31st win of the year.
"I was trying to dictate as much as I could. Things went well for me today, but my game is still a work in progress.
"It will be an incredibly tough challenge in the semis. But I'm happy I got there and I'm glad to be playing another day."
De Minaur has a 3-0 record over Opelka with all the wins coming this year in Sydney, Atlanta and Cincinnati.
Nine-time champion and top seed Roger Federer had already made sure of his spot in the semi-finals after Swiss compatriot Stan Wawrinka withdrew from their last-eight tie with a lower back injury just an hour after seeing off Frances Tiafoe in a gruelling second round clash on Thursday night.
Federer will on Saturday face either Greek third seed Stefanos Tsitsipas or Serbia's Filip Krajinovic for a spot in Sunday's final.
Results from the ATP tournament in Basel on Friday (x denotes seeding):
Roger Federer (SUI x1) bt Stan Wawrinka (SUI x7) - walkover
Reilly Opelka (USA) bt Roberto Bautista Agut (ESP x4) 6-3, 3-6, 6-3