Djokovic loses to Machac in Geneva semi-final before French Open title defence
Djokovic 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 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.