Bo Naylor and Andres Gimenez added solo home runs for the Guardians in the opener of a three-game series.
George Springer and Vladimir Guerrero Jr. hit solo home runs for the Blue Jays, who have lost three in a row.
Cleveland right-handed rookie Tanner Bibee (10-3) allowed two runs, six hits, one walk with five strikeouts in six innings.
Toronto right-hander Chris Bassitt (12-7) allowed four runs, seven hits and two walks (one intentional) with five strikeouts in 5 2/3 innings.
Springer led off the bottom of the second with his 16th homer of the season on a drive to right center.
Naylor, a native of the Toronto suburb Mississauga, Ontario, smacked his fifth homer of the season on a shot to right with one out in the third inning. Steven Kwan singled with two outs later in the frame, but he was out at home when he tried to score on Jose Ramirez's double to right.
Cleveland took a 3-1 lead in the fourth. Oscar Gonzalez hit a one-out infield single to second and Laureano hit a two-run drive to center for his seventh homer of the season.
Guerrero led off the home fourth with a single and was out at home trying to score on Matt Chapman's two-out double to the left-field corner.
The Guardians added one run to their lead in the sixth on doubles by Gonzalez and Laureano.
Toronto got that back in the bottom of the sixth on Guerrero's 19th homer of the season, a one-out blast to left center.
Enyel De Los Santos replaced Bibee and had a perfect seventh with two strikeouts.
Gimenez hit a drive to right against Jordan Hicks with two out in the eighth for his 12th home run of the season.
Cleveland's Trevor Stephan pitched around a walk in a scoreless eighth.
Emmanuel Clase overcame an error in the ninth to earn his 34th save of the season and his 100th with Cleveland and 101st of his career.
Cleveland outfielder Will Brennan (right knee strain) was a late scratch Friday.
—Field Level Media