2023 runner-up Alcaraz survived a gruelling three-set clash to book a meeting with Zverev in the semi-finals.