Canada defeated the United States for the first time in 34 years Tuesday after goals from Alphonso Davies and Lucas Cavallini delivered a stunning Concacaf Nations League upset.

Bayern Munich teenager Davies pounced in the 63rd minute before Cavallini blasted home deep into stoppage time to seal a deserved 2-0 victory for the Canadians, who had not beaten the US since 1985.

The result deepens the gloom surrounding the United States national team, which has been in a protracted slump since its shock failure to qualify for the 2018 World Cup.

The questions will now pile up for US coach Gregg Berhalter, who has struggled to build a coherent squad and tactics since taking over at the start of the year.

The Americans were second best all over the pitch on Tuesday at Toronto FC’s BMO Field against a Canadian side who looked sharper from the outset.

The miserable US performance was embodied by the form of Chelsea’s Christian Pulisic.

Pulisic, who is struggling to make an impression in the Premier League, was substituted on the hour mark shortly after squandering a gilt-edged chance to give the USA the lead.

The Chelsea forward was by no means alone however, with Josh Sargent and Weston McKennie also struggling to forge much in the way of goalscoring opportunities.

The Canadian breakthrough came midway through the second half.

US veteran Michael Bradley coughed up possession cheaply in midfield and Canada swarmed forward.

Another poor clearance from US centre-back Tim Ream saw the ball end up with Scott Arfield, whose low cross was met by Davies who tapped in from close range.

The US struggled to get back in the game thereafter, and Canada might have doubled their lead only for Junior Hoilett to be denied by a superb save from Fortuna Dusseldorf’s Zack Steffen.

But the final hammer blow came in time added on when Mexico-based forward Lucas Cavallini latched on to a lofted pass from Jonathan Osorio to volley home.