St Louis: The St Louis Blues pulled off a 3-2 upset victory over the NHL-leading Vancouver Canucks on Monday, handing red-hot goaltender Roberto Luongo his first regulation loss in more than two months.

Andy McDonald and Alexander Steen scored first-period goals for the Blues (25-21-9) who went 3-1 ahead in the second on a goal by Patrik Berglund.

Jannik Hansen netted a wrist shot for Vancouver at 1:47 in the third but the Canucks (36-12-9) could not get the equaliser and lost for just the second time in nine games.

Luongo made 31 saves but also made a silly mistake to gift St Louis their second goal when his clearance went straight to Steen, and he suffered his first loss in regulation since December 5, also against the Blues, to snap a streak of 21 games.

"The puck was coming towards me and I thought I had enough time to shove it [away]," Luongo told reporters of the events that led to Steen's goal. "Obviously, it was a bad decision. He anticipated it and made me look pretty bad."

St Louis netminder Jaroslav Halak finished with 23 saves, one game after he was pulled for allowing three goals during his team's loss to the Minnesota Wild on Saturday.

With just their third win in the last 10 games, the Blues are seven points behind the eighth and final playoff spot in the Western Conference.

"I think the desperation was there," Blues coach Davis Payne said. "It was five guys going over the boards, making sure they made the right plays. A big step for our club."