Having lost the first set, Thiem recovered to seal a 4-6, 6-2, 6-3 on clay in the Bavarian capital to end the run of 19-year-old Zverev.
In Sunday's final, Thiem will face the winner of Saturday's other semi-final when Germany's Philipp Kohlschreiber, who won the Munich title in 2007 and 2012 but lost to Britain's Andy Murray in last year's final, meets Italy's Fabio Fognini.