Juan Martin del Potro stunned Novak Djokovic on Saturday to end the world No. 1's 22-match winning streak and book an ATP Indian Wells Masters final against Rafael Nadal.
Argentina's Del Potro defeated Djokovic 4-6, 6-4, 6-4, ending the Serbian's winning streak that had stretched back to October 31.
Nadal, an 11-time Grand Slam champion seeded fifth in his fourth tournament back from a seven-month injury absence, beat sixth-seeded Czech Tomas Berdych 6-4, 7-5.
"I'm playing with confidence, I'm finding a way to win with my forehand," del Potro said. "I played well in the important moments and finished with a fantastic ace.
"It was such a tough match, especially in the hot conditions. I need to recover now and be ready for Sunday."
Djokovic's 17 match wins this year had included a run to a fourth Australian Open title and the ATP title at Dubai.
He looked and sounded weary as he philosophically offered his congratulations to del Potro.
"It happens," Djokovic said. "All the credit to my opponent today. He deserved to win because he was more composed in the important moments and he played the right shots.
"He stepped into the court, where, on the other side, me, I made a lot of unforced errors and was at back of the court too passive. It's sport."
Del Potro had beaten Djokovic just twice in 10 prior meetings, although one of those victories was a sweet one for the bronze medal at the London Olympics last year.
Djokovic had since re-established his authority with wins over Djokovic at the Cincinnati Masters, US Open and ATP Finals last year, and at Dubai in February.
Down a set, the determined del Potro broke Djokovic to open the second, but the set would prove a see-saw affair featuring five breaks of serve.
Djokovic appeared to have regrouped when he sped to a 3-0 lead in the third with one break of serve, but del Potro broke back to narrow the gap to 3-2.
While del Potro was unable to convert two break chances in the seventh game, he came through in the ninth.
A well-judged forehand to the corner gave him a second break point in the game, and when Djokovic sailed a backhand long, del Potro was serving for the match.
He polished it off in style, with a 133 mile per hour ace.
Del Potro's reward will be a title showdown with former world No. 1 Nadal, who has already exceeded his own expectations with a runner-up finish and two titles in his first three comeback tournaments.
"I don't have nothing to lose after seven months," Nadal said. "I did much more than what I dreamed."