German third seed Alexander Zverev capitalised on an error-filled performance from Carlos Alcaraz to tame the high-flying Spanish teenager 6-4 6-4 4-6 7-6(7) and reach a second straight semi-final at the French Open.
This was the first time the 25-year-old Zverev defeated a top-10 opponent at a Grand Slam in 12 attempts and his victory came against a player who came into the contest having won 14 consecutive matches.
Zverev, who lost to Stefanos Tsitsipas in the 2021 semi-final, had a 2-1 head-to-head lead against Alcaraz but his opponent had won their most recent meeting - the only one on clay - his month in the final of the ATP Masters in Madrid.
Alcaraz made 56 unforced errors as Zverev saved a set point in the fourth set tie-break before converting his second match point with a superb backhand service return to set up a meeting against either world number one Novak Djokovic or 13-time French Open champion Rafa Nadal.