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.
The Krakow, Poland native shot off to a 4-1 lead, but Williams answered with a break that had the fans on their feet. Radwanska hit a drop shot, Williams dropped back, Radwanska hit a lob and Williams got back in time to win the point with a cross-court smash.
Radwanska settled back in to finish the set and opened the second with a service break. After Williams broke to tie it at 2-2, she gave the break to Radwanska with a pair of double faults. Radwanska cruised the rest of the way, punctuating her victory with an ace on match point.
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.''
Organizers announced the tournament drew 181,996 spectators, topping the previous high of 175,000. Sales were boosted by the recent success of Eugenie Bouchard, but the Westmont, Quebec native lost her first match on Tuesday to Shelby Rogers.