Djokovic, holder of a men’s record 24 Grand Slam titles, beat Italian Lorenzo Musetti 6-4 6-2 on Friday to reach the Olympic final for the first time.
The 37-year-old Serb, who lost in straight sets to Alcaraz at the All England Club last month, has won every major singles title except the Olympics.
He was fourth in Tokyo three years ago and took bronze at Beijing in 2008 – his only previous Olympic medal.
Djokovic’s routine win was in stark contrast to his match on the same court against Musetti at the French Open two months ago, which went to five sets and finished at 03:07 local time.
He now faces Spanish second seed Alcaraz, who thrashed Canada’s Felix Auger-Aliassime 6-1 6-1 in Friday’s other semi-final.
The 21-year-old will contest his third major final two months, having won the French Open at the same venue in Paris in June, before his Wimbledon win.
Elsewhere, world number one Iga Swiatek won bronze in the women’s tournament.
The Pole was left in tears on Thursday after her 25-match winning streak on the Paris clay was ended by China’s Zheng Qinwen.
That defeat meant Swiatek missed out on the gold-medal match.
However, she was back in action on Friday, breezing past Slovakia’s Anna Karolina Schmiedlova 6-2 6-1 in just 61 minutes to add Olympic bronze to her five Grand Slam titles.
It is Poland’s first Olympic medal in tennis.
Czech pair Katerina Siniakova and Tomas Machac won the mixed doubles gold, beating China’s Wang Xinyu and Zhang Zhizhen 6-2 5-7 10-8.
Canadians Felix Auger-Aliassime and Gabriela Dabrowski beat Demi Schuurs and Wesley Koolhof of the Netherlands to take the bronze.