Daniil Medvedev needed eight match points to beat Frances Tiafoe and reach the Indian Wells final for the first time.
Russian world number six Medvedev held off a late rally to defeat the American 7-5 7-6 (7-4) in California and claim a 19th successive win.
Medvedev will play 19-year-old Carlos Alcaraz, who beat Italian Jannik Sinner 7-6 (7-4) 6-3, in Sunday's final.
Spaniard Alcaraz will return to world number one if he lifts the title.
Medvedev arrived at Indian Wells in fine form having won back-to-back ATP titles in Rotterdam, Doha and Dubai.
Russian world number six Medvedev held off a late rally to defeat the American 7-5 7-6 (7-4) in California and claim a 19th successive win.
Medvedev will play 19-year-old Carlos Alcaraz, who beat Italian Jannik Sinner 7-6 (7-4) 6-3, in Sunday's final.
Spaniard Alcaraz will return to world number one if he lifts the title.
Medvedev arrived at Indian Wells in fine form having won back-to-back ATP titles in Rotterdam, Doha and Dubai.