After knocking out world No.1 Novak Djokovic in the third round, taking out twice champion and eighth seed Andy Murray in the quarter-finals, and seventh seed Grigor Dimitrov of Bulgaria in the last four, Tsonga claimed the biggest scalp of all in denying 17-time grand-slam winner Federer a landmark 80th career title.
Despite Tsonga winning 93% of points on his first serve, Federer clung on in the first set, and was 30-0 up on Tsonga's service at 5-5.
The world No.15 fought back and, after a Federer challenge was overruled at 30-30 in the next game, Tsonga took the set at the first opportunity when the Swiss 33-year-old sent a forehand a long way out.
Federer saved several break points in the second set, but when Tsonga had a championship point at 5-4 a shout from the crowd appeared to upset his concentration and allow Federer a lifeline.
But after he edged ahead in the tie-break, Tsonga set himself up for victory with a powerful forehand, before Federer found the net with the next point.
It was the 11th career title for Tsonga but his first this season, and only his second ATP Masters 1000 title victory, coming nearly six years after his first, at the 2008 Paris Masters.
The 13th-seeded Frenchman's hit list including players who had won seven of the last 10 Canadian titles (Djokovic 2012, 2011, and 2007; Murray 2010 and 2009, and Federer 2004 and 2006).
In 16 career meetings Tsonga had beaten the Swiss former world No.1 five times, but three of those victories had come on the Canadian hard courts.
In the women's Rogers Cup in Montreal, Agnieszka Radwanska beat Venus Williams 6-4, 6-2, the third-seeded Pole setting herself up as a player to watch at the US Open.
It was the first win of the season for Radwanska but provides a timely jolt of confidence going into Flushing Meadows and the year's final grand slam, with 11 of her 14 career titles having come on hard courts.
Williams, a twice US Open champion, will also be buoyed by her performance in Montreal with a projected return today to the world rankings top 20 for the first time since March 2013.
The tournament also pushed Williams past the $30 million in career earnings, joining an elite club that includes her sister Serena and Maria Sharapova of Russia.
After a grinding three-set win over her top-ranked sister Serena in Saturday's semi-finals, the 34-year-old American appeared to have little left against an energetic and focused opponent almost 10 years her junior.
Radwanska took control early on a sunny centre court, breaking Williams twice to go in front 4-1.
Williams would break back but the Pole would not buckle and easily took the opening set.
The world No.5 opened the second set with another deflating break to quickly put the pressure on Williams, and then broke the dejected American again to go up 5-2 before holding serve - finishing off the match with an ace.