Alcaraz, featuring in an ATP Masters 1000 event for just the second time, was in impressive form as he saw off France’s Adrian Mannarino 6-4 6-0.
The teenager, who will face Nadal on his 18th birthday on Wednesday, fired 19 winners as he took the initiative against his more experienced opponent and his reward is significant.
Shapovalov ‘feeling a lot better’ after bouncing back in Madrid
He became the tournament’s youngest ever match winner, beating the record set by Nadal.
“For me, [to] play against Rafa is a dream come true,” Alcaraz said as he readies himself to go up against the 20-time grand slam winner.
“Since I was a kid, I wished to play a match against Rafa and now I will be able to here [on] the Centre Court of La Caja Magica in Madrid. It is a really special match against Rafa.”
He told Tennis Channel: “It’s the best present for my birthday.”
The biggest casualty of the day was 13th seed Grigor Dimitrov, who lost 3-6 6-3 7-6 (7-5) to Lloyd Harris early on, the South African now 4-0 against top-20 opponents this year.
Two qualifiers in Pablo Andujar and Marcos Giron played out a remarkable encounter that lasted three hours and 21 minutes.
The first set alone clocked in at just over an hour and a half, but eventually Giron came through the gruelling clash 6-7 (8-10) 7-6 (7-4) 7-5 to set up a meeting with third seed Dominic Thiem.
Fabio Fognini defeated Carlos Taberner 7-6 (7-4) 2-6 6-3 for the right to face eighth seed and Italian countryman Matteo Berrettini.
Diego Schwartzman, the seventh seed, awaits Aslan Karatsev after he beat Ugo Humbert in straight sets in what was the Russian’s debut appearance at the tournament.
Dan Evans and John Isner were among the other players to secure progress on Monday.
Get breaking news alerts.
You have already subscribed