Alcaraz has won four titles this year, including two Masters 1,000 events, but made 56 unforced errors as he missed the chance to reach a first major semi-final.
Instead, Olympic champion Zverev reached the last four at a Slam for the fifth time in his career to maintain his bid for a maiden title at one of the sport's four biggest events.
It also gave him a measure of revenge for the heavy defeat he suffered against Alcaraz in the Madrid Masters final earlier this month.
Alcaraz delighted the Court Philippe Chatrier crowd with a rally to take the third set.
A dramatic fourth set saw Zverev miss a chance to serve out the tie, but he sealed victory on his second match point in the tie-break.
Zverev holds off fightback
Alcaraz paid for making 16 unforced errors as Zverev took the opener thanks to the only break in game five.
It was the world number three who drew first blood in the second set too, as Alcaraz netted on a second break point in the seventh game, before a confident hold to love gave Zverev a 5-3 advantage.
Alcaraz managed to lift himself for an attack on Zverev's next service game, but the German saved a break opportunity and managed to close it out for a two-set buffer on his third set point with an ace.
The crowd tried to lift Alcaraz as he started his attempt to come back from two sets down and win for the first time in his young career.
He did improve slightly and held his first four service games without trouble, before digging deep to save a break point in the ninth game of the third set to edge 5-4 in front.
That brush with the exit door energised the youngster, and he quickly brought up two set points with a brilliant passing shot.
He needed just one to force a fourth set, breaking Zverev for the first time as the 25-year-old prodded wide.
Alcaraz looked the more likely to make a breakthrough for much of the next set, but Zverev, aided by one incredible backhand, made a move in the ninth game when his opponent double-faulted on a second break point.
But Zverev failed to serve out the match, as Alcaraz hammered a magnificent return into the corner and then whipped away a backhand to break straight back.
A tie-break of the highest quality ensued, with both players hitting a series of breath-taking winners.
A stunning backhand up the line gave Alcaraz the first set point, but he mishit into the net.
Zverev netted on his first match point but quickly brought up a second, which he took with a thunderous backhand return.