Djokovic leads 7-6 (5), 1-6, 7-6 (4).
Federer has yet to face a break point in the match and had a set point with Djokovic serving at 5-4 in the third, but sent a backhand return wide.
In the tiebreaker, Djokovic jumped out to a 5-1 lead and clinched the set when Federer netted a forehand.
Federer is looking for his ninth Wimbledon title, while Djokovic is after his fifth.
This is the pair’s third meeting in the title match at the All England Club. Djokovic won both of those previous matchups, in 2014 and 2015.
Federer, who is 37, is going for his 21st Grand Slam trophy overall on Sunday, while the 32-year-old Djokovic is playing for his 16th.
They have played each other 47 times already, with Djokovic holding a 25-22 head-to-head edge. This is also their 16th showdown at a major tournament — the most between any two men in the professional era.