McLaren's reigning world champion Lando Norris, winner of the previous sprint in Miami, was second after 23 laps of the Circuit Gilles Villeneuve.
McLaren's Oscar Piastri finished fourth with the Ferraris of Charles Leclerc and seven-times champion Lewis Hamilton fifth and sixth respectively.
Four-time world champion Max Verstappen was seventh for Red Bull with Racing Bulls rookie Arvid Lindblad taking the final point in eighth.
Russell's second sprint victory of the season cut Antonelli's lead to 18 points, with the 19-year-old Italian fuming after the Mercedes pair almost collided in battling for the lead.
"That was very naughty," the teenager said after Russell shut the door on an early passing attempt, with Norris seizing his chance to take second.
The Italian continued to complain over the radio, saying Russell should be given a penalty because he had been alongside the Briton's mirror.
"I don't care. He pushed me off," he told race engineer Peter 'Bono' Bonnington after an attempt to calm him down.
Team boss Toto Wolff then made a rare radio intervention, telling Antonelli to "concentrate on the driving, please, not on the radio moaning".
Wolff spoke again in the closing stages, telling his driver it was the fourth time and to discuss matters privately later.
