Khachanov recuperou de uma desvantagem de 3-1 no desempate do último set para vencer Zverev 6-3, 4-6, 7-6(4).
Shelton, quarto cabeça de série, arrasou Fritz 6-4, 6-3 na primeira meia-final All-American de Masters 1000 em 15 anos, garantindo assim a quinta e mais importante final ATP da sua carreira.
O russo Khachanov, 11.º cabeça de série, tinha perdido duas meias-finais anteriores no Canadá. Mas foi buscar forças para avançar, salvando um match point ao empatar o set decisivo em 6-6, com o número três do mundo Zverev a bater um backhand na fita superior da rede.
O alemão cometeu 44 erros não forçados na derrota de quase três horas, enquanto Khachanov teve 29 winners e 34 erros não forçados. "Tive de lutar neste jogo, ir fundo e dar o meu melhor", disse Khachanov: "Foi muito exigente física e mentalmente.
"Tivemos muitos jogos e estou feliz por vencê-lo depois de perder alguns fáceis", acrescentou Khachanov, que perdeu para Zverev na final de singulares dos Jogos Olímpicos de Tóquio: "Hoje foi um jogo difícil - estive a um match point de perder. Estou contente por as coisas terem corrido a meu favor no final."
Khachanov disse que ficou tenso no final.
"Quando se chega ao tiebreak final, temos de dar o nosso melhor. Não se pode perder tempo e energia com pensamentos negativos, senão não se consegue. Nunca se sabe o que vai acontecer, mas temos de tentar."
Khachanov vai disputar a sua primeira final da época, depois das derrotas nas meias-finais em Barcelona e Halle.
Shelton e Fritz tiveram de esperar por um breve atraso quando surgiu um problema com o sistema eletrónico de chamada de linha ao entrarem no court. Mas isso não foi nada para Shelton, de 22 anos, o número sete do mundo, que tinha derrotado Alex de Minaur nos quartos de final e que, com a vitória sobre Fritz, conseguiu as suas primeiras vitórias consecutivas sobre adversários do top 10.
O finalista do US Open, Fritz, teve de salvar quatro break points no terceiro jogo da partida e foi quebrado no nono jogo, deixando Shelton a servir para o set.
Shelton conseguiu um segundo break para uma vantagem de 3-2 no segundo set, fazendo um lob perfeito sobre a cabeça de Fritz e confirmou em branco para uma vantagem de 5-3. Fechou a masterclass com mais um break, com Fritz a partir a raquete no joelho depois de ter cometido uma dupla falta no match point.
“Estou contente com o meu nível e com a forma como executei”, disse Shelton: “Vi muitas melhorias no meu jogo esta semana. É isso que me deixa mais feliz, a forma como estou a executar, o quão pouco hesito, como estou a devolver. Vencer dois jogadores do top 10 consecutivamente é muito importante para mim. Senti que tinha a bola presa a um fio. Estou entusiasmado por jogar assim, batendo na bola e esperando que ela entre.”