World number one Federer began the match as he won a massive 13-minute game, with Djokovic saving six break points before finally dropping to 0-2 with a forehand wide.
That opened the door for Federer, who proceeded to sweep the set in imperious style, allowing the 2008 Australian Open winner one late game before taking the lead after 32 minutes.
But Djokovic struck back in the second as he broke for a 2-0 lead on Federer's lob which sailed just long. The triumph was short-lived, with Federer levelling on 3-all from a Serb error.
Federer claimed the 61st title of his career as he broke in the penultimate game and closed it out a game later to love.
The trophy was the third for Federer in Cincinnati after winning in 2005 and 2007. He stands 47-7 on the season.