Zverev served one of the biggest upsets of the Games so far as he knocked out Novak Djokovic in the semi-finals.
The German defeated the Serb 1-6 6-3 6-1 to dash hopes of a Golden Slam - winning a gold medal alongside all four Slams in one season.
Meanwhile, the ROC’s Khachanov dispatched Spain’s Pablo Carreno in straight sets, 6-3 6-3, to book his spot in the final.
Whoever wins will be a new Olympic champion as Andy Murray won singles gold in 2012 and 2016.
Here’s all you need to know about the crucial match.
When is the match?
The final will be played on Sunday 1 August with the start time to be confirmed.
The bronze-medal match between Djokovic and Carreno Busta will take place on Saturday 31 July from 7am BST.
How can I watch?
It hasn’t been confirmed if the match will be broadcast on the BBC, but it is likely to be shown either on BBC One or the iPlayer.
If it isn’t, you can catch all the action on Eurosport.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies