American John Isner reached the Indian Wells final with a shock victory over world number one Novak Djokovic.
Isner hit 20 aces on his way to a 7-6 (9-7) 3-6 7-6 (7-5) victory.
He recovered from a break down in the opening set to win it on a tie-break and, after Djokovic took the second, Isner won the decisive tie-break.
He will play third seed Roger Federer in Sunday's final after the Swiss former world number one beat second seed Rafael Nadal 6-3 6-4.
The result means 11th seed Isner, who is also in the men's doubles final with partner Sam Querrey, will break into the world's top 10 for the first time in his career.
But for Djokovic it is a second straight semi-final defeat after he lost to Britain's Andy Murray at the same stage in Dubai earlier this month.
"It's frustrating when somebody serves over 70% of their first serves in with that angle and with that speed and accuracy," Djokovic said.
"I knew I had to stay patient and just wait for the chance. I had some chances, I didn't use them. But I thought I played a really good match.
"He played very well when he needed to, so all credit to him," he added.
Isner, who will be appearing in an ATP Masters 1000 event for the first time, said: "That's why I play this game - to be able to enjoy moments like that.
"It was very special when that last ball went by him and I knew I had won the match. Not many people can say they've ever beaten the number one player in the world."
In the other semi-final, a straight-sets victory saw Federer advance to his third successive final with a 38th win in 40 matches since he lost to Djokovic in last year's US Open semi-final.
After a three-and-a-half-hour rain delay, world number two Nadal forced break points in the opening game but Federer produced four big serves to hold and did not look back in the set.
The second proved less plain sailing as the 16-time Grand Slam winner went two breaks up, only to see Nadal break back before the rain reappeared with Federer 5-4 up and on match point.
However, after a brief delay his concentration held and he closed out the match to improve his record against his great rival to 10-18.
Afterwards, both players seemed impressed with the 30-year-old's performance, Federer pronouncing himself pleasantly surprised with the quality of his game in wet and frequently windy conditions.
"I've not felt great this week and I didn't expect myself to play so well tonight," he said. "This is sometimes when you can pull off the biggest wins of your career.
"I know how well I played, so I'm just really pleased with my performance."
"He played fantastic, and I just congratulate him," Nadal agreed.
"He started the match playing more than unbelievable. His serve was with high percentage, and I wasn't able to play my usual tactic against him with those conditions."