O último jogo, com Zverev a servir a 5-3, foi interrompido por gritos de um adepto indisciplinado que foi expulso pela segurança.
A distração pôs fim a uma série de 14 pontos consecutivos ao serviço, com o cabeça de série a cometer uma dupla falta quando conseguiu continuar a servir. Zverev terminou a noite com um forte golpe na rede no seu primeiro match point.
Zverev completou a sua 40.ª vitória do ano em pouco mais de duas horas e meia.
O número três do mundo venceu o torneio em 2017, mas não tinha passado dos quartos de final no Canadá desde então.
"Depois de perder o primeiro set, tive de dizer a mim próprio que estávamos ambos a jogar bem", disse o detentor de sete troféus Masters.
"Tive um ou dois erros no final do primeiro, mas foi um jogo de alto nível. Senti que se continuasse a jogar bem, teria as minhas oportunidades - e tive. Não me posso queixar do segundo e do terceiro sets".
Zverev vai disputar a final de quinta-feira, estranhamente agendada, contra o três vezes semifinalista Karen Khachanov, que eliminou o jovem americano Alex Michelsen por 6-4, 7-6 (7/3).
"Foi um jogo muito renhido e competitivo", disse Khachanov. "Tive de recuperar de algumas situações difíceis".
"A forma como lidamos com isso mentalmente é importante. Fiquei contente por ter conseguido fechar o jogo no segundo set. Tive de tentar não lhe dar a oportunidade de entrar e atacar; foi isso que fiz hoje".
Zverev ganhou cinco dos sete jogos que disputou contra Khachanov.
Popyrin e Zverev duelaram durante todo o set de abertura, que durou 71 minutos e foi para o desempate.
Zverev não conseguiu converter duas oportunidades de vitória, mas Popyrin aproveitou bem a sua segunda oportunidade com um winner que apanhou o seu adversário encalhado na linha de fundo.
O alemão começou a virar o jogo no segundo set, assumindo uma vantagem de 4-1 apenas para ver o australiano empatar a 4.
Zverev afastou-se para empatar o encontro a um set cada, quebrando para 6-4 quando Popyrin enviou um volley para fora.
O cabeça de série começou o último set com uma vantagem de 3-0, a caminho das meias-finais do torneio no evento pré-US Open.
Popyrin continua sem vencer Zverev, depois de ter perdido os quatro jogos que disputaram.