Dany Heatley equalised but Chris Drury and Jamie Langenbrunner put the US two clear and Ryan Kesler sealed victory after a Sidney Crosby consolation.
BBC: United States ice hockey team stuns hosts Canada
3.
After the interval, 29-year-old Heatley added a second for Canada but with four minutes left of the period, Drury, of the New York Rangers, gave his side the lead again.
BBC: United States ice hockey team stuns hosts Canada