World number one Novak Djokovic fell to 44th-ranked Czech Tomas Machac, 6-4, 0-6, 6-1, in the semi-finals in Geneva on Friday ahead of his French Open title defence.
Djokovic, 37, took a wild card to the Swiss clay-court tournament in a bid to reverse an alarming dip in form ahead of Roland Garros where the 24-time Grand Slam champion has won three times.
"I have no reaction right now, I just fought for every ball," said 23-year-old Machac.
"When you play against Novak you just hope. You just try to play your best and see what it looks like."
Djokovic, bidding to reach his first final of the season, received a medical timeout at the end of the first set.
The Serb will head to Roland Garros where he faces Frenchman Pierre-Hugues Herbert in the first round having won no titles this year.
Machac, competing in his maiden tour-level semi-final, rallied from a break down in the first set and after failing to win a game in the second powered back in the third set.
"I'm looking forward to playing in a final for the first time," said Machac who will face two-time champion Casper Ruud or Italian Flavio Cobolli in the title match on Saturday.
Ruud, the world number seven, was the runner-up in the last two French Open finals, including a defeat to Djokovic last year.