Sakkari had reached seven semifinals and two finals in her last ten tournaments coming into Indian Wells this year.
The Pole came back from a break down in each set, saving two set points in the first-set tiebreak, to win in 1 hour and 49 minutes.
Early in the decider, the 20th seed got his first break of the match on his eighth chance, then took the lead and cruised to victory.
Rublev continued his stellar form in Indian Wells, reaching the semi-finals for the first time after winning back-to-back ATP Tour titles.
Badosa became the first player since Karolina Pliskova in 2016 and 2017 to reach back-to-back semifinals at Indian Wells.
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.
Taking on home favourite Frances Tiafoe, the Russian raced to a 6-3, 6-4 victory in just 70 minutes.