Alcaraz is now the tournament's second-youngest semi-finalist, trailing only Andre Agassi, who was also 17 at the time.
Nadal, a three-time champion in Indian Wells, will be making his 11th appearance in the semi-finals against Carlos Alcaraz Garfia.
The Polish player advanced to the semifinals against 2015 BNP Paribas Open champion Simona Halep after a 56-minute victory over Keys.
Rafael Nadal will face Nick Kyrgios and Cameron Norrie will face Carlos Alcaraz Garfia in the quarter-finals on Friday.