(CNN) -- Lewis Hamilton led McLaren to a one-two finish at the Canadian Grand Prix to claim the lead in the Formula One world championship.
Hamilton, who had started on pole, surged past his Red Bull rival Mark Webber on lap 50 of 71 and stormed to victory in Montreal ahead of his team-mate Jenson Button.
Ferrari's Fernando Alonso was third, with Red Bull's Sebastian Vettel fourth, Webber fifth and Nico Rosberg of Mercedes in sixth.
After McLaren's second straight one-two, Hamilton now has 109 points and leads the championship by three points from Button, with Webber a further three points behind.
"It's been a tremendous weekend," Hamilton told a televised press conference. "We've had incredible support from the fans and the team did an exceptional job."
Alonso made the early running in Canada before he was passed by Hamilton on lap 15.
Webber took control after a series of tire changes but the Australian was caught by Hamilton and Alonso on lap 48, with the British driver taking the lead on the straight at the start of lap 50.
Webber dropped to fifth after his final pit stop and Button seized second place on lap 55 when Alonso got stuck behind Hispania driver Karun Chandhok.
Alonso of Spain remained less than a second behind Button but was unable to pass the reigning world champion and had to settle for third.
"It was a good day for us, the car was very competitive and I think we had a good opportunity to win," said Alonso.
"We are still in the championship but we are moving in the right direction and we are back in the fight."