The Canadian Grand Prix was won by Max Verstappen.
After a late safety car, the two started the final fifteen laps nose to tail, but Verstappen held on with older tires.
Lewis Hamilton and George Russell took third and fourth for Mercedes while Charles Leclerc was fifth.
Verstappen has a 49 point advantage over Leclerc.
Despite retiring from the race due to an engine problem, Perez is still in second place, three points behind Leclerc.
Fernando Alonso, who started on the front row for the first time in a decade, suffered from a questionable strategy from Alpine and some technical issues to finish seventh.
Verstappen and Sainz played a game of cat and mouse throughout the race, with two virtual safety cars and the final full safety car.
Red Bull put Verstappen under the first VSC on lap nine, caused when Perez pulled off, while Sainz stayed out, before the Spaniard stopped under the second 11 laps.
Sainz closed in on Verstappen through their second stint, but the Dutch driver stopped for a second time on the 43rd lap.
Sainz was helped by the crash of Alpha Tauri on his way out of the pits.
Even though he had a six-lap tire advantage over Verstappen, he was unable to get close enough to the Red Bull to mount an attack.
Verstappen held on for his fifth win in six races, Red Bull's sixth in a row, and his own sixth victory in nine races this season to further consolidate his title lead.
Alonso had talked about challenging Verstappen for the lead on the first lap but the Red Bull made too strong a start and the veteran Spaniard had to settle for second place.
Sainz passed the Alpine and seemed to think he was in a safety car.
Both Hamilton and Russell stopped under the first and second but Alonso did not.
The 40-year-old lost out to Ocon as the Frenchman stopped with Russell under the second VSC.
The decisions left Alonso in no-man's land and he had to stop a few laps later under racing conditions.
Alonso was in front of Leclerc for the last run to the flag. Leclerc passed both to take fifth and do a decent job of damage limitation, although Alonso had stronger pace than Ocon.
Alonso asked the team if they would swap positions because he claimed he was 100 times quicker than Ocon.
He did indeed maintain his significant pace advantage throughout but the team chose not to accede to his request and Ocon finished ahead of Alonso.
There is a two week break before the British Grand Prix, where Mercedes should be better on the track.