The 19-year-old Spaniard reached his second ATP Masters final in five weeks and claimed his first win over a reigning world number one, overcoming Djokovic 6-7 (5/7), 7-5, 7-6 (7/5) in front of a sell-out home crowd at the Caja Magica.
Alcaraz has a tour-leading seven wins against top-10 players this season. He enters Sunday's final against defending champion Alexander Zverev carrying a nine-match winning streak, having triumphed in Barcelona a couple of weeks ago.
He is the youngest player to beat the world number one in 17 years.
Asked if he sees a limit to what he can achieve, Alcaraz said: "I don't think so. Tomorrow I will go for the final as I did in Miami. I'm really happy to be able to play a second Masters 1000 final."
"I would say that I feel ready to compete against them (the top players) in every single tournament, in every single surface," added the Miami champion.
Zverev moved into his third Madrid final with a 6-4, 3-6, 6-2 win against Greek world number five Stefanos Tsitsipas, in a clash that finished at 1:06 am local time (2306 GMT Saturday).
The German second seed, a champion in the Spanish capital in 2018 and 2021, extended his Madrid winning streak to nine consecutive matches. Zverev has won both of his previous meetings against Alcaraz.
A calm and collected Alcaraz kicked off the match against Djokovic with a service break, thanks to a well-timed cross-court backhand passing shot. He was soon up 3-1 on the top seed.
Djokovic, who turns 35 this month, struck back to draw level at 4-4 as the set went to a tie-break.
A fired-up Djokovic sped to a 5-1 advantage and soon got his hands on four set points.
Alcaraz saved the first with an aggressive return and another with an ace. The Spaniard save a third with a spot-on drop shot to narrow his deficit to 5-6 but Djokovic closed out the set on his fourth opportunity after 62 minutes.
The players were neck and neck in the second set, until Alcaraz upped the ante in game 12, winning key battles at the net and perfectly using his drop shot when he needed to.
The Murcia native claimed a break and the set with a sensational get, running down a Djokovic drop shot and hitting a winner from outside the doubles alley.