Rafael Nadal overcame fellow Spaniard Carlos Alcaraz in just over three hours to reach the final at Indian Wells, where he will face Taylor Fritz.
Spain's Nadal beat the talented 18-year-old 6-4 4-6 6-3 in a match hampered by strong winds.
It is fourth seed Nadal's 20th consecutive victory as he continues his remarkable unbeaten start to the year.
Home favourite Fritz secured his place in Sunday's final with a 7-5 6-4 win over Russian Andrey Rublev.
Nadal won the Australian Open in January as well as lifting the title in the warm-up event at Melbourne, then the Mexican Open a month later.