This is the first time since 2017 that the two will meet each other in this event.
The two greats, who have 37 Grand Slams between them, won their respective quarter-final matches.
Swiss ace Federer eases past Hurkacz
37-year-old Federer eased past Poland's Hubert Hurkacz 6-4, 6-4.
The fourth seed continued his fine run and is yet to drop a set in the tourney.
Federer became the oldest player to reach the semis at Indian Wells.
"Personally, I'm very excited to be in the semis here. Not that I didn't expect it, but it definitely went better than I thought it would."
I will try my best to recover, says Nadal
Nadal was made to work a lot in his 7-6, 7-6, victory over Russia's Karen Khachanov.
He required treatment on his right knee during the match.
"I will try my best to recover - these are the matches I want to play. To play against my biggest rival at the later stages of our careers and to keep competing against each other is great."
Indian Wells: Head-to-head records
Federer and Nadal are set to meet at the Indian Wells for the fourth time in their careers.
Veteran Federer has a 2-1 edge over Nadal.
Federer beat Nadal for the first time here in 2012 during their semis duel.
The Spaniard claimed his revenge a year later in the quarter-finals.
In 2017, Federer then surged ahead with a 6-2, 6-3 victory.
Federer has enjoyed the run against Rafa in recent times
The two stars last played in the final of the Shanghai Masters in October 2017. Federer had won the tie in straight sets. Federer has also won each of their last five matches. But it's Nadal who leads 23-15 in their head-to-head records.
Kerber sets up Andreescu date in women's singles final