The German followed up his famous win over home favourite Rafael Nadal by defeating Austria's Thiem 6-3 6-4 in the semi-final on Sunday (AEST).
Zverev, who won this event in 2018, will meet Matteo Berrettini in the final after he defeated Casper Ruud in straight sets in the day's other semi-final.
Thiem had won the past four meetings between the two, including in last year's Australian Open semi-final and the US Open final, where he came from two sets down to win in an incredible fifth-set tie-break.
Zverev said after his victory over Nadal that he would be thinking about that crushing loss in New York prior to his meeting with Thiem.
He was able to gain a small measure of revenge for those recent grand slam defeats in the Spanish capital.
"We have had some fantastic matches," Zverev said. "We have played the biggest matches in the world. We have played Masters 1000 finals, we have played grand slam finals and [the rivalry] is still developing.
"It is still going to go on for a few more years. Hopefully we will play a few more amazing matches. It feels very [sweet to win], it is a rivalry where he kicks my arse most of the time.
"It is going to mean a lot to me [if I can win the final].
"I am definitely looking forward to playing another big final and I hope I can turn it my way this time."
A solitary break of serve was enough for Zverev to claim the opening set.
He recorded two breaks in the second to go 4-1 up and although Thiem got one strike back, two more holds gave Zverev, who forced 11 break points to his opponent's two, a big victory.
The world No.6 is yet to drop a set this week but has lost his past three Masters 1000 finals going into his latest attempt on Monday (AEST).
Thiem, meanwhile, has reached the Madrid Open semi-finals in four straight years but it still waiting for his first triumph at the tournament.