The result put Canada in second place in Group D with three points, same as Norway and ahead on goal difference (plus-5 to minus-1). But Canada must play its final match against group leader North Korea - which has won both of its matches by a combined 13-2 -- on Monday, while Norway will face winless Argentina.
After Canadian keeper Sabrina D'Angelo saved Ada Hegerberg's penalty attempt in the 19th minute, Jenna Richardson gave the North Americans the lead a minute before halftime.
But Hegerberg atoned for her penalty miss with a tap-in goal in the 52nd minute, and her older sister Andrine Hegerberg converted with a left-footed drive from outside the area in the 79th for the winner.
Canada had more of the possession but was outshot 18-13.