Petra Kvitova outlasted China's Li Na 7-5, 2-6, 6-3 to take the Rogers Cup title.
The 22-year-old Czech earned her first tournament win of the year after taking six titles last year, including Wimbledon.
It was the first of Kvitova's eight career victories to be won in North America.
The match featured two Grand Slam champions from 2011, as Li took the French Open. Li is 0-3 in tournament finals this year.
Kvitova, seeded fifth, struggled at the start, hitting several balls long. She fell behind 3-1 before she found the range with her forehand and charged back to take the lead.
Even then, she needed to save three break points to take a 6-5 lead, then won the set on her fifth break point against the 10th-seeded Li.
Li took the first 16 points of the second set to grab a 4-0 lead before Kvitova finally held serve.
But Kvitova got her game back for the third, hammering shots deep in the hard court that Li could not return. Li didn't help herself by hitting two easy smashes into the net.
Li's serve was broken at 3-2 when she doubled faulted, then had a return fly wide off the rim of her racket.
Kvitova punctuated the win with an ace on match point.
Kvitova reached the final with a three-set victory over seventh-seeded Caroline Wozniacki.
Li had a tougher route, getting past Eugenie Bouchard, eighth-seeded Sara Errani and second-seeded Agnieszka Radwanska just to reach the semifinals.
There she roared back from a 5-1 third-set deficit to defeat Lucie Safarova.