Daniil Medvedev has reached the Indian Wells final for the first time but needed eight match points to secure victory over Frances Tiafoe.
Medvedev, 27, held off a late Tiafoe surge to beat the American 7-5 7-6 (7-4) for his 19th successive win.
The Russian fifth seed arrived at Indian Wells in fine form having won back-to-back ATP titles in Rotterdam, Doha and Dubai.
He will face top seed Carlos Alcaraz or Jannik Sinner in Sunday's final.
Playing in his first semi-final in the California desert, it took until the 11th game of the first set for Medvedev to get the vital break of serve despite relentless play from the baseline.
It looked as though the second set would be an easier affair when Medvedev broke in the opening game, but after a spirited Tiafoe saved three match points, he was twice broken while serving for the match.
World number 16 Tiafoe battled back from 5-1 down in the tie-break to 5-4, but from there Medvedev scrambled over the line, serving out the win with an ace.
"It was crazy at the end," said the former world number one. "I got super tight.
"The ace was a relief. I'm just really happy that I managed not to lose this match."
Victory in the final would see Medvedev become the first man since Andy Murray in 2016 to win four titles in five weeks.
Earlier, Wimbledon champion Elena Rybakina defeated world number one Iga Swiatek in straight sets to reach the women's final, where she will play Aryna Sabalenka in a repeat of the Australian Open final.