Jack Sock celebrated a pair of firsts on Friday by powering past fourth seed Kei Nishikori 6-3 2-6 6-2 to book a date with Roger Federer in the of the BNP Paribas Open in Indian Wells, California.
Relying on his big serve and blistering forehand, the 17th-seeded American finally reached a Masters 1000 semi-final in his 28th appearance and notched his first ever victory against a top-five opponent in eight attempts.
"I've given everybody their money's worth, a three-setter every match so far," the 24-year-old Sock said in an on-court interview.
"I feel like I'm playing some great tennis right now."
Sock's stock has been soaring this year, claiming tournament titles last month at the Delray Beach Open in Florida and at the Auckland Classic in January.
Eighteen-times grand slam Federer advanced to the semi-finals without lifting a racket as suspected food poisoning forced Australian Nick Kyrgios to withdraw from their much anticipated quarter-final.
Kyrgios, who beat Novak Djokovic for the second tournament in a row to reach the last eight, took to twitter about an hour before the scheduled start of the match against the Australian Open champion to announce his withdrawal.
"I'm so sorry but I can't play today," he said. "After a restless night of being sick I have nothing left and to play a great champion like Roger, I need to be at my best to have a chance.
"I don't take this decision lightly, these are the matches we train for but I'm in no fit state to take the court."
Sock had no such problems and he hit the mark right at the start of deciding third set by breaking Nishikori in the opening game as the world number five struggled to find the range on his usually pinpoint groundstrokes.
The American earned the important second break against a battling Nishikori by converting his fifth break point of a marathon fifth game before going on to serve out victory in one hour 48 minutes.
"I think he served really well," said Nishikori. "I was having a really tough time with my return, missing a lot, and giving him a lot of short balls. And he was attacking really well, first and third sets.
"I didn't play my best tennis today, but I think he played good tennis also."
Sock has lost his two previous matches against Federer, including a 6-3 6-2 decision at Indian Wells in 2015.
"The last time I played him here I didn't really go out on court thinking I had much of a chance," said Sock. "He's playing some good tennis, I'm playing some good tennis, so I'm really looking forward to a battle."