The Argentine ended the world number one's 22-match winning streak to reach the finals of the Indian Wells Masters - while Nadal saw off Thomas Berdych to continue his recovery from injury.
Djokovic suffers first loss in five months as del Potro sets up Nadal showdown at Indian Wells final
Juan Martin del Potro stunned Novak Djokovic last night 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.
"He's a big challenge for me also," del Potro said of Nadal. "He will want to win this tournament, for sure, and it's going to be very interesting match."
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 — with the crowd behind him — 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.
"I was aggressive all the time," del Potro said. "He couldn't do what he likes like in Dubai, and that was because of my game. I tried to hit hard with more forehands. When I had the chance to come to the net, I did all the time."
Del Potro, who won his first title of the season at Rotterdam last month, booked his second final appearance in a Masters tournament.
He also rallied from a set down in his victory over World No. 3 Andy Murray on Friday, but he said that was little help against Djokovic.
"Djokovic is completely different player," he said. "He's the No. 1 and always is a big challenge against him.
"I was so close to losing," he said of his 3-0 deficit in the third. "But I think I got lucky in very important moments, very important points when I made a fantastic winners on my forehands — also good aces."
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."
Follow us @SprtNationalUAE