Nadal will meet teenage compatriot Carlos Alcaraz for a spot in the final.
Rafael Nadal dug deep to beat mercurial wildcard Nick Kyrgios 7-6(0), 5-7, 6-4 in a blockbuster quarter-final match that lived up to the hype at Indian Wells on Thursday and set up a clash with teenage compatriot Carlos Alcaraz for a spot in the final.
Despite not playing his best, the Nadal managed to deliver in the match's biggest moments and maintain his composure as his opponent threw his racket and jawed with the chair umpire, fans and himself.
The Spaniard saved break points early in the third set and hung on to see off the big-serving Australian and extend his unbeaten record this year to 19 matches.
"I think I played a good third set," Nadal said in an on-court interview.
"I was returning better, I was solid with my serve. Nick is one of these players that you're going to have problems with when he's motivated, so I'm happy for the victory."
Kyrgios came out hot, breaking Nadal for an early 2-1 advantage in the first and pumping his fist after firing a blistering forehand winner down the line for a 5-3 lead.
But Nadal struck back, handing Kyrgios his first break of serve of the tournament to level at 5-5, and Kyrgios threw his racket when Nadal's winner clipped the tape to begin the next game.
Unforced errors put Kyrgios in a hole in the first set tie-breaker and Nadal won it after his fiery opponent was given a point penalty for "audible obscenity" after he swore at an unruly fan.
Kyrgios regained his composure in the second, hitting a slicing 45 mile per hour underhand ace for a 4-3 lead, breaking Nadal in the final game with a spectacular leaping backhand volley winner that sent the crowd into a frenzy.
Nadal, who committed seven double faults and won just 29% of his second serves, saved break points early in the third set and broke Kyrgios for a second time to take a 4-3 lead. He sealed the win with an emphatic overhead smash on match point.
After shaking hands at the net, Kyrgios threw his racket again onto the court and this time it nearly bounced into the stands.
If Nadal can win his fourth title in the California desert, the 21-time Grand Slam champion will move into a tie with Novak Djokovic for the most Masters 1000 titles with 37.
Nadal, 35, will face teenage sensation Alcaraz in a generational battle on Saturday after the 18-year-old knocked out British defending champion Cameron Norrie 6-4, 6-3 with a convincing and electrifying performance.
"It's tough to play Rafa, but I will enjoy the day, enjoy the match. It's not every day you play your idol," Alcaraz said after reaching his first ATP Masters 1000 semi-final.
He also became the youngest Indian Wells semi-finalist since American Andre Agassi in 1988.
"I think he's unstoppable in terms of his career," Nadal said of Alcaraz. "He has all the ingredients, the passion. He's humble enough to work hard.
"He's going to be a great rival for now and for the next couple of months, without a doubt. Being selfish, it's great to have such a star from my country ... I wish him all the very best."