Lewis Hamilton survived another first corner clash with Mercedes team-mate Nico Rosberg to take a fifth Canadian Grand Prix victory and cut the German's championship lead to nine points.
The duo banged wheels after being overtaken at the start by Ferrari's Sebastian Vettel but triple world champion Hamilton, who had been on pole position, recovered to record a second successive win.
Hamilton took the chequered flag five seconds ahead of Vettel while Rosberg finished fifth, behind Red Bull's Dutch teenager Max Verstappen in fourth, after a frustrating afternoon.
Finland's Valtteri Bottas finished third for Williams but was 46.4 seconds behind Hamilton in a race that turned into a strategy duel between Ferrari and Mercedes on a cold Canadian afternoon.
Ferrari's gamble on pitting Vettel twice did not pay off, with the four times world champion still looking for his first win of the campaign.
With the victory coming two days after Muhammad Ali's funeral, Hamilton quoted the late boxing great - 'float like a butterfly, sting like a bee' - over the radio as he crossed the finish line.
"That was for Ali," he said.
The opening clash between the two Mercedes drivers was their second in three races, this time with Rosberg pushed wide and dropping to ninth place at the end of the first lap.
The German also suffered a slow right rear puncture and had to make a second pit-stop on lap 52 while in fourth place. He then spun while trying to pass Verstappen in the closing laps.
Rosberg now has 116 points to Hamilton's 107 after seven of 21 rounds.