Draper fought his way past Alcaraz 6-1 0-6 6-4 on Saturday (Sunday AEDT) to reach the decider at Indian Wells.
The 13th-seeded Draper will face 12th-seeded Holger Rune in the final after the Dane beat fifth-seeded Russian Daniil Medvedev 7-6 6-4 in the first semi-final for his 150th tour-level victory.
Draper ended Alcaraz's 16-match winning streak at the ATP Masters 1000 event in the California desert.
The 23-year-old English left-hander - set to break into the top 10 in the world for the first time when the next rankings are released - won last year in Vienna and Stuttgart for his only tour titles.
"It was a strange match in all honesty," Draper said.
"Carlos came out a little flat, I sensed that. I had a chance in the first game of the second, and he came up with an ace. … What happened to him happened to me, I got tight, I had low energy.
"Against the top players in the world, they can change their momentum very quickly. I got lost out there for 25 minutes, but in the third, I was really proud of my competitiveness, my attitude and I somehow managed to get over the line."
Alcaraz, seeded second, missed a chance to become the youngest player to win three consecutive singles titles at any ATP Tour event, and just the third to do it at Indian Wells.
The 21-year-old Spaniard won in Rotterdam in February for his 17th ATP Tour title.
Rune snapped a seven-match losing streak in semi-finals and squared his head-to-head ledger against Medvedev at 2-2.
"It means everything," the 21-year-old said.
"The job is not over yet, but it feels amazing. Playing Daniil is one of the toughest challenges for me on tour.
"I managed to beat him the first time (we played), but we know each other well. I obviously had the right tactics, but it was still so difficult because he puts in great effort and is super solid. So, I'm very proud of myself."
Rune has four ATP Tour titles. His biggest victory came in Paris in 2022 in another ATP Masters 1000 tournament.
Medvedev won the most recent of his 20 ATP Tour titles in 2023. The 29-year-old Russian lost to Alcaraz last year in the Indian Wells final.