British number one Cameron Norrie beat Spain's third seed Carlos Alcaraz to reach the semi-finals in Cincinnati.
Norrie, 26, squandered a 4-1 lead in the second set and battled back from 3-1 down in the decider to win 7-6 (7-4) 6-7 (4-7) 6-4 in just over three hours.
The world number 11 will play Croatia's Borna Coric in the next round, while world number one Daniil Medvedev will play Greece's Stefanos Tsitsipas in the other semi after their wins.
"That was unbelievable," said Norrie.
Alcaraz, ranked fourth in the world, had been seeking his third ATP Masters 1000 title of the season but was only able to convert two of the 13 break points he had against Norrie.