Carlos Alcaraz had to dig deep against the world no.1 Novak Djokovic but managed to battle past the Serbian to reach the Madrid Open final.

After overcoming Nadal in the quarterfinals, Alcaraz immediately faced another 20-time grand slam champion but showed maturity beyond his years to reach another ATP 1000 event’s final.

The 19-year-old after clinching a stirring 6-7(5), 7-5, 7-6(5) win will face Alexander Zverev in the final.

Alcaraz made a fast start again with his power pinning Djokovic to the back of the court.

A barrage of bruising forehands and a backhand pass broke Djokovic in the opening game to the delight of his passionate home support.

Djokovic responded emphatically and from 40/15 in the third game, he won 21 successive points on serve and reclaimed the break in the eighth game.

He carried that momentum into the first-set tie-break, opening up a 5/1 lead that proved unassailable.

Just as the second set seemed to destined for another tiebreak Alcaraz produced a sublime return game at 6-5 to break and force a decider.

Alcaraz continued to look the more dangerous player into the deciding set, with Djokovic fending off break points in three of his service games.

The Spaniard let a match point slip at 5-5 as Djokovic’s trusty delivery continued to fire at big moments, but Alcaraz was not to be denied in the tie-break as he held firm for a statement win.

Carlos Alcaraz will now face Germany’s Alexander Zverev in the Madrid Open final.

The German overcame Stefanos Tsitsipas in another three-setter winning 6-4, 3-6, 6-2, and now has a chance to defend his crown against the 19-year-old Alcaraz.

Zverev holds a 2-0 ATP Head2Head advantage over Alcaraz following a pair of dominant hard-court victories last season in Acapulco and Vienna.