The 21-year-old German will play 14-time Grand Slam champion Novak Djokovic or South African Kevin Anderson in the last four.
The fourth seed Zverev's 6-4, 6-4 victory over the 11th-seeded Briton seals his place in the season-ending ATP Finals in London next month, which bring together the top eight men.
“It's great to finally officially make it and again be a part of the best eight, which is an elite group,” said Zverev. “It is a goal for everyone at the beginning of the season. I'm very pleased to be in London again and get another opportunity to play there for the second year in a row. I'm looking forward to the tournament.
"I put it close to equal as a Grand Slam, actually. It's probably one of the most prestigious events that we have, because to get there, you have to be one of the best eight players in the world… Just being a part of it, just playing there is already an honour itself. It's close to, or it's maybe equal to winning a Grand Slam, and I think other players will tell you the same thing, because just to be there, you obviously play well throughout the whole year," Zverev said.
Shanghai top seed and defending champion Roger Federer plays Kei Nishikori in the quarter-finals later on Friday.
The top four players in the world -- Rafael Nadal, Federer, Djokovic and Juan Martin del Potro -- have already qualified for London. Zverev is ranked fifth.