Thiem, the Austrian seventh seed, goes on to face either 2016 champion and 12-time major winner Novak Djokovic or Italy's world number 72 Marco Cecchinato for a place in Sunday's final.
German second seed Zverev simply ran out of gas, paying a heavy price for needing three successive five-set matches to reach his first Grand Slam quarter-final.
His Roland Garros marathon also left him physically drained -- he needed his left thigh strapped in the second set.
"He is one of the fittest guys on the tour so it was difficult for him today," said Thiem, the only man to have defeated 10-time French Open champion Rafael Nadal on clay this year.
"I hope we have many more matches at the Grand Slams but when we are 100 percent.
"It's great to reach the semi-finals for a third year but it's time to take another step and I will do everything for that."
The statistics made bleak reading for Zverev -- he finished with 42 unforced errors and just 19 winners.
In a tight first set of a match played in overcast, heavy conditions, Thiem converted the only break point off a backhand winner in the seventh game before securing the opener with an ace.
Austria's Dominic Thiem is congratulated by Germany's Alexander Zverev
Zverev, who had spent more than two and a half hours than his Austrian opponent getting to this stage, hit 13 unforced errors to Thiem's miserly eight.
A double break took the 24-year-old Austrian to 4-1 in the second set before Zverev needed a medical timeout for a leg injury.
With his left thigh heavily strapped, the 21-year-old German was soon two sets down and looking at having to become the first player to win four consecutive five-setters if he was to make the semi-finals.
Zverev managed just four winners in the second set.
There was no coming back for the big-hearted German who was quickly down 4-0 in the third before Thiem wrapped up the affair.