After squandering an early lead to drop the first set on a tie-break, Alcaraz showed character and composure belying his young years. The 19-year-old fought back from within two points of defeat to break the Djokovic serve before drawing parity on the night.
In a spectacular point to close out a riveting second set, Alcaraz dished out a drop shot, which Djokovic was prepared for. The Serb responded with a sharp-angling half-volley, only for Alcaraz to sprint to the net and put away a stunning winner down the line.
In a dramatic third set, both players held firm on serve as another tie-break ensued. However, it was Djokovic who blinked at the most inopportune moment as Alcaraz closed out one of the biggest wins of his fledgling career.
Carlos Alcaraz will face Alexander Zverev in Madrid final, seeks fourth title of the year
Carlos Alcaraz is undoubtedly the man of the moment. He followed up his thrilling three-set win over Rafael Nadal in the quarterfinals with an equally imperious performance against Djokovic.
The 19-year-old has had a breakthrough year, winning his first two ATP 500 titles (Rio de Janeiro and Barcelona) either side of his Masters 1000 breakthrough in Miami. His triumph at the Conde de Godo last week made Alcaraz the youngest top-10 debutant in the ATP rankings since a certain Rafael Nadal in 2005.
Following his win over Djokovic in the Madrid semis, Alcaraz is now on a nine-match winning streak, improving to a tour-leading 27-3 on the season.
He will take on Alexander Zverev in the Madrid final. The German outpowered Stefanos Tsitsipas in the second semifinal, winning 6-4, 3-6, 6-2.
Interestingly, Alcaraz has won all four of his career singles finals, impressively doing so without dropping a set. To put that into context, Nadal and Djokovic went 3-1 in their first four finals, while Roger Federer was 1-3. Moreover, none of the current ATP top-10 players have won their first four finals.
On Sunday, the 19-year-old will seek to win a tour-leading fourth title of the year and second at a Masters 1000 tournament.