Three-time BNP Paribas Open champion Nadal reached his fifth final in California as he overcome strong winds to beat his fellow Spaniard and will now take on America's Fritz, who beat Andrey Rublev of Russia 7-5 6-4.
Multiple major winner Nadal kicked off his calendar year with success at a warm-up event in Melbourne before claiming the Australian Open title and followed it up with victory at the Mexican Open in Acapulco.
"I am super happy to be in the final," Nadal said in his on-court interview. "It means a lot to me, and I'll just keep going."
The semi-final match-up against his countryman Alcaraz was seen as the battle of the generations and 35-year-old 21-time Grand Slam champion Nadal said he felt he needed to make a statement against his 18-year-old opponent.
Nadal needed just over three hours to book his place in the final and was pushed all the way by Alcaraz, as well as being tested by heavy winds, which disrupted the second set as items blew onto the court.
"I took it like another semi-final match. He's not a young player that is 100 in the world and is coming. He is a top player already, so I treated it like that, playing against one of the best players in the world," Nadal said.
"It doesn't matter if he's young or not, he's a great guy, an amazing player and he has a fantastic future. I treated it like this, just tried to go on court, try my best and accept all the challenges. I am through and it was a very important victory for me."
If the fourth seed and legendary left-hander beats Fritz on Sunday, he will go level with Novak Djokovic for the most ATP Masters 1000 titles in history with 37.
Fritz, 24, will have to shake off an ankle injury he suffered in the final stages of his semi-final win over Rublev, as he bids to become the first American men's winner at Indian Wells since Andre Agassi in 2001.