The 20-year-old German used his booming serve to overpower Federer 6-3, 6-4 on Sunday as the Swiss superstar never got a chance to get into the match.
"I tried to be aggressive as I can," said Zverev. "If Roger starts being aggressive with his forehand and backhand then it is not going to be an easy day for me."
Zverev avenged a 6-1, 6-3 loss to Federer in the Halle final in June -- his only loss in a final this season.
He is now tied with Federer for the most titles this season at five.
"It's a wonderful achievement for him," Federer said of Zverev. "I wish him the best for the coming months and hope he can finish the season very strong.
"I'm just really happy for him, to see that he's taking everything not just to the next level, but the two next levels."
Zverev blasted six aces and won 80 percent of first serve points as he needed just 68 minutes to dominate the 19-time Grand Slam winner and reigning Wimbledon and Australian Open champion.
Zverev hammered away at the 36-year-old Federer with excellent court coverage keeping him off balance throughout the 30 minute opening set. He closed out the set with serve to the backhand that an out of sorts Federer dumped into the ground.
Federer, who was broken three times, looked just as frustrated to open the second set, hitting backhands long and freezing in his tracks as aces whizzed by.
Zverev capped his victory on the first match point when Federer hit a forehand long.
Federer suffered just his third loss of a season and had his longest win match streak in five years snapped at 16.
Federer, who dropped to 5-1 in finals in 2017, is undergoing a resurgence this season after it appeared to many he might be slowing down as he transitions through his mid-30s.
But he entered the Montreal event on short notice and has taken more time off this year than usual. He skipped the clay-court season from April to mid-June.
He said playing a lot on the hardcourts this week caught up to him on Sunday.
"I felt all right all week. Had a bit of muscle pain, aches and pains here and there, just because it's back on the match courts, on the hard courts," Federer said. "After vacation and practice, it's always a bit of a shock for the body.
"We'll have to wait and see now how I feel in the next couple of days."
Few days to rest
Federer travelled to Cincinnati on Sunday night for the next tournament but will wait to see if he can play back to back events.
"I will take a decision in the next couple of days and see how I feel after five days of playing, if I'm ready to play in Cincy next week or not," he said.
"Looking ahead to the US Open, obviously I want to be in the best possible shape. Winning my third of the year, my 20th Grand Slam, would be completely insane. I just hope I'm going to be 100 percent ready when the moment arises."
Federer was hoping to add another milestone to his memorable season but he failed to post his 94th career title which would have moved him into a tie for second all-time with Ivan Lendl.