Thomas Johansson saved five match points to upset defending champion James Blake and reach the final of the Stockholm Open on Saturday.
The Swede, the winner here in 2000 and 2004, recovered from a first set in which the American outplayed him to triumph 3-6, 6-1, 7-6 and set up a meeting with Ivo Karlovic in Sunday's final.
The big-serving Croatian had earlier disposed of German Tommy Haas 6-4, 6-3.
"It's not every day that you turn around a match where you've had five match points against you, especially not against James, so I'm credibly satisfied," said Johansson.
Twice champion Blake, who had never previously lost a match in Stockholm, played near flawless tennis in the first set, breaking Johansson to 3-1.
After he had held his serve to wrap up the first set, Blake's game got weaker in the second as Johansson improved.
The decisive third set proved to be a thriller as the top-seeded American was back to his best and he returned superbly on Johansson's serve but never capitalised on his break points.
Leading 5-4, Blake had his first match point at 30-40 on Johansson's serve but the Swede fought his way out of trouble.
GREAT RETURN
At 6-5, Blake earned three more match points on Johansson's serve thanks to two brilliant backhands, one a passing shot down the line followed by a great return.
The Swede held his nerve with astounding serving, most notably a second-serve ace that took him back to deuce. Blake got one more match point after that but failed to convert it.
Roared on by his home crowd, Johansson took command of the tie-breaker with a gutsy backhand return for a 1-0 mini-break. He broke Blake again to 4-0 and eventually won 7-3.
"I've had some fun and I came through some matches [this week] I easily could have lost," said Blake. "Today the tables are turned -- a couple of points and I could have won."
In the final with Karlovic, Johansson is up against arguably the world's most effective server at the moment. The Croat hit 15 aces against Haas and now has the most on the ATP tour.
"The most important thing is to try to enjoy it out there, because it might take a few games before you touch one of his serves," Johansson said of the 2.08-metres tall Croat.
At 4-4 against Haas in the first set Karlovic held his serve with a cheeky, underarm ace. He then broke Haas to take the set as the German double faulted after saving one set point.
At 2-2 in the second set the Croatian broke Haas again.
The German nearly broke back with the score at 5-3, taking the first three points on Karlovic's serve but the Croatian served four straight aces to close out the match.