The Swiss top seed got through a perfect week without losing serve to capture his 76th career trophy.
It was also his 16th win in 28 meetings against world number two Djokovic and it means he will go into the US Open as the clear favourite having become the first man to win five titles at the Cincinnati event.
"I've had a magical summer (seventh Wimbledon title, London Olympic silver medal). I feel good about New York - but I'm going to savour this one for a bit," said Federer.
"Even with how well I'm playing you never expect yourself to win these big matches. It's been a great week for me."
Roger Federer with the winner's trophy at Cincinnati. Photo: AFP
Federer's success on Sunday marked his 21st Masters 1000 trophy, pulling him level with Rafael Nadal on the all-time list.
At the age of 31, Federer also became the oldest Cincinnati winner since Andre Agassi who was 34 when he won in 2004.
Federer had already won Masters events this year at Indian Wells and Madrid and is 6-2 in finals in 2012, a year highlighted by a seventh Wimbledon title, his 17th career major.
World number two Djokovic was bidding to become just the fourth player since 1990 to win the Canada-Cincinnati double after defeating Richard Gasquet in last week's final in Toronto.
Neither player had dropped serve entering the match, but Federer broke Djokovic in the opening game and stormed to a one-set lead in just 20 minutes.
Federer converted three of his four break points, while Djokovic tossed in four double faults to lose the first bagel set in 28 meetings with Federer.
The 25-year-old Djokovic settled into the second set to force a tie-break and held set point at 7/6.
But Federer wiped it away before hitting back-to-back forehand winners to claim victory in 80 minutes.
"I had a terrible first set, he started very solid on serve," said Djokovic. "He was putting a lot pressure on my serve.
"I made a lot of double faults and didn't find my rhythm and it was over in 20 minutes. I played better in the second, I thought it was very even. But when I had the chances I didn't use them. He deserved to win."
The tournament was the 16th consecutive Masters 1000 tournament that has been won by one of four players -- Federer, Djokovic, Nadal or Andy Murray.
Federer will remain atop the ATP rankings through the US Open, adding another three weeks to his all-time total as he begins his record 292nd week in the top spot.
Djokovic was carrying momentum from last week's Toronto title and the loss snapped his nine-match winning streak.