Frenchman Julien Benneteau sent defending champion Roger Federer crashing out of the Rotterdam World Tennis tournament on Friday with a stunning 6-3, 7-5 quarter-final upset.
Federer, who lifted the trophy in his last two appearances in 2005 and 2012, last suffered defeat in the event against Tim Henman in 2004.
"I'm very disappointed, I have some regrets about this match," said Federer, who came back from two sets to love down to beat Benneteau in the third round of Wimbledon last year.
"He played great and created more chances than I did. He deserved to win. It was a tough loss, but they do happen. Being broken so many times (five) indoors won't get the job done. My game was up and down overall.
"He made it difficult and generated pressure. That made you try to serve harder. When I had some chances I didn't take them. I was maybe a point or two away from taking it into a third set and then the clock resets."
Benneteau, the world 39, will play a Saturday a semi-final against fifth-seeded compatriot Gilles Simon who was 3-0 ahead in the final set against Martin Klizan when the Slovak player quit with an injury.
"This was a dream match, and I played like a dream," said Benneteau after his second career win over the world number two.
"This is for sure my biggest win. He was the favourite, but maybe he played a bit tight. I've been playing well all week, improving with each match.
"I've had a great week here so far and I hope it's not finished."
Federer was clearly off the boil from the start, beginning with an ace but losing the first game.
He was broken three times in the first set in a shocking display from the top seed and heavy crowd favourite at the Ahoy stadium.
The French challenger wrapped up the opening set and went up a break at 3-1 in the second as Federer's game continued to suffer.
But the Swiss stirred to life as he broke back to love for 3-4.
Federer then levelled at four games apiece before Benneteau saved three break points to hold for 6-5.
A game later, it was done, with Federer donating a double-fault for a match point and then missing the far corner with a backhand which was confirmed by electronic linecalling.
Second seed Juan Martin del Potro cruised into the semi-finals with a victory in straight sets against Finland's Jarkko Nieminen.
The Argentine won 6-3, 6-4, and will now face unseeded Bulgarian Grigor Dimitrov who came from a set down to beat Marcos Baghdatis.
Del Potro took just under 90 minutes to go through, racking up 10 aces along the way before sealing victory on his second match point as the Finn returned long.
"It was a difficult win, he's a lefty and hit his shots differently. He was fighting all the time and I had to play my best game to go through," said the 2009 US Open champion.
"It feels good to be in the semi-finals, I'm trying to repeat what I did last year (final) and go even farther.
"Dimitrov has a very good future. He's playing fantastic tennis, the match will be close for both sides."
Dimitrov beat Baghdatis 6-7 (4/7), 7-6 (7/0), 6-3 in a performance that showed he is returning to the kind of form he produced at the start of the year, when he reached the final in Brisbane before losing to Andy Murray.
The Bulgarian had also beaten Baghdatis in three sets in that tournament, and he repeated the feat on Friday.