The 31-year-old Serb, a five-time runner-up at the event, beat seven-time champion Federer 6-4 6-4.
Wimbledon champion Djokovic had lost the Cincinnati final to the Swiss on three previous occasions.
Victory for world number two Federer would have brought him his 99th career trophy, as well as levelling the long-time rivals’ head-to-head record at 23-23.
Djokovic will now look to take his form into the
Federer was under pressure from the start, saving two break points before holding to win the first game.
World number 10 Djokovic eventually broke his opponent’s serve for 4-3 before holding to win the opening set.
US Open, which starts on 27 August, having previously won two titles at Flushing Meadows.