TORONTO -- Jose Bautista homered and drove in three runs, and right-hander Drew Hutchison threw a gem to lead Toronto.

Bautista hit his 22nd homer of the season in the second inning, and he singled in the fourth. He drove in another run on a two-out double in the sixth to help the Blue Jays snap a four-game losing streak.

Hutchison (8-9) bounced back from a three-inning dud to turn in one of his finest performances of the season. Other than a second-inning homer he surrendered to Chris Davis, Hutchison didn't allow a baserunner through the first eight innings. Hutchison retired 22 consecutive batters after Davis' homer, and allowed one hit over 8 2/3 innings.

Reds 8, Indians 3

CINCINNATI -- Zack Cozart hit a three-run homer, and Kristopher Negron added a two-run shot, lifting Cincinnati over Cleveland.

Negron went 3-for-4, for his first career three-hit game. Starter Mat Latos (4-3) allowed three runs and six hits in 7 2/3 innings for Cincinnati, which has won 15 of 20 games against Cleveland at Great American Ball Park.

Cleveland scored three times in the eighth on Yan Gomes' solo homer, his 16th, and a two-run double by pinch-hitter Ryan Raburn.

Phillies 10, Astros 3

PHILADELPHIA -- Ben Revere went 4-for-5, and Chase Utley hit a three-run homer to power Philadelphia, which broke out offensively after scoring two runs in its previous 36 innings.

David Buchanan, recalled earlier in the day from Triple-A Lehigh Valley to fill the spot in the rotation vacated when Cliff Lee was lost to an elbow injury, went 6 1/3 innings for the victory. Buchanan (6-5) allowed three runs and nine hits and had five strikeouts without walking a batter.

Astros starter Brad Peacock, recalled from Triple-A Oklahoma City earlier in the day, took his third straight major league loss. In his last nine innings, Peacock (3-8) has yielded 16 runs.

Yankees 5, Tigers 1

NEW YORK -- Brian McCann hit a go-ahead home run with one out in the seventh inning, and New York ended a streak of 16 consecutive games decided by two runs or fewer.

The Yankees completed their run of opposing three straight former Cy Young Award winners by taking two of three. They beat Max Scherzer on Monday but lost Tuesday in 12 innings in David Price's Tigers debut.

McCann helped ensure the Yankees would get the win over Justin Verlander (10-10) when he drove a 1-2 pitch into the Yankees' bullpen. That gave the Yankees their first lead on a tough night against Verlander, who retired the first 11 Yankees and stranded two in the fourth inning before Chase Headley homered into the second deck in right field with one out in the fifth.

Rockies 13, Cubs 4

DENVER -- Colorado reached a season-high in runs, doing much of the damage against Chicago starter Jake Arrieta, who brought a 2.11 ERA into the game but was blasted for a career-high 13 hits and a career-high tying nine runs.

Arrieta (6-3) had yielded three or fewer runs in his previous 11 starts. He was knocked out after giving up seven straight hits to start the six-run sixth inning.

Corey Dickerson went 4-for-4 and finished a home run shy of the cycle for the Rockies. Justin Morneau, Carlos Gonzalez and Michael McKenry each had three hits, including two-run homers from the latter two.

Giants 7, Brewers 4

MILWAUKEE -- Pablo Sandoval and Mike Morse each drove in three runs for San Francisco.

Brewers starter Yovani Gallardo (6-6) never got settled, lasting just four innings in his second-shortest outing of the season. He gave up four runs on nine hits and four walks. The Giants scored three off Gallardo in the first, taking advantage of four singles, two walks (one intentional) and a pair of wild pitches.

Milwaukee cut the deficit to a run in the seventh on a two-run single by Aramis Ramirez. But, with runners at first and second, Scooter Gennett lined out to end the threat.

Red Sox 2, Cardinals 1

ST. LOUIS -- Xander Bogaerts' sacrifice fly in the top of the ninth inning snapped a tie and gave Boston the victory over St. Louis.