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.
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.
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.