Trying to add to his Munich titles in 2017 and '18, Zverev served for the match against Ivashka at 5-4 in the second set.
But he was broken. Ivashka, ranked 107th, made the decisive break at 4-3 in the third for his first top 10 win. Zverev is ranked sixth.
Ivashka saved six of nine break points he faced and achieved a second straight victory from a set down. He plays another German, Jan-Lennard Struff, in the semifinals.
Struff defeated fourth-seeded Filip Krajinovic 6-4, 4-6, 7-6 (3).