The third-seeded Radwanska, the first Rogers Cup champion from Poland, picked up her first tournament victory of the year and the $441,000 winner's prize. The 34-year-old Williams earned $220,000.
The 25-year-old Radwanska used her relentless baseline game to dominate a tired-looking Williams, who was coming off an emotional, three-set victory over her top-ranked sister Serena Williams in a semifinal on Saturday.
“I think I was playing much better every match,” Radwanska said. “I didn't start that well from my first match, but every match was much better.
“That's why I think I'm sitting right here now with you (reporters). I was feeling the balls much better.”
Radwanska, ranked fifth in the world to Williams' 26th, posted her first Rogers Cup win after twice reaching the semifinals. It was her first tournament victory since 2013 at Seoul.
Williams, a seven-time Grand Slam winner, had an excellent week that will put her back into the world top-20 starting Monday. It included wins over sixth-seeded Angelique Kerber and 14th-seeded Carla Suarez Navarro.
She fell short in her bid to become the event's oldest champion. Martina Navratilova won 52 days short of her 33rd birthday in 1989.
“It's been a really long week,” Williams said. “I played like six matches in a row.
“Against her, you really have to be patient. Today I just didn't have everything to be patient and really work the point. I wanted to give more, but I just didn't have it. It felt great to play so well this week. I really would like to think under circumstances where I could give everything I have, that the results could have been a little different."
The 13th-seeded Tsonga won his first ATP Tour title of the season and 11th overall. He beat top-ranked Novak Djokovic on Thursday, eighth-seeded Andy Murray on Friday and seventh-seeded Grigor Dimitrov on Saturday.
Tsonga improved to 5-11 against Federer.
Federer dropped to 2-5 in finals this season, with his victories coming in Dubai and Halle.