NEW YORK -- Dan Johnson had a tie-breaking infield single with one out in the top of the seventh inning and hit a three-run home run in the ninth as the Toronto Blue Jays ended a 17-game losing streak at Yankee Stadium with a 6-4 victory Saturday afternoon.

Toronto won at Yankee Stadium for the first time since Aug. 29, 2012 and did so on a day when it loaded the bases twice. The Blue Jays did not score with the bases loaded in the first but capitalized on shaky New York defense to scratch across a run in the seventh.

The Blue Jays had runners on second and third after right fielder Melky Cabrera walked and first baseman Jose Bautista doubled to the left field corner against Shawn Kelley (1-3). On the next pitch, it seemed to be the first out but as first baseman Brian McCann fielded a ground ball from catcher Dioner Navarro, he first looked over to third and was unable to make the out at first.

After Kelley recorded the first out, Matt Thornton gave up the game-winning hit, a bloop single that barely reached the infield going between second baseman Brian Roberts and Thornton. Roberts did not field it cleanly, the ball went under the glove and Cabrera scored.

Cardinals 6, Cubs 3

CHICAGO -- Matt Adams stroked a pair of two-run doubles and St. Louis broke a tie with a four-run seventh inning against Chicago to snap a four-game losing streak.

Adams, the St. Louis first baseman, went 2-for-5 with four RBIs and a run scored. Randy Choate (2-2) got one out for the win. James Russell (0-2) took the loss after being charged with all four runs in the seventh.

Nate Schierholtz and Ryan Sweeney homered for the Cubs.

Reds 1, Nationals 0

CINCINNATI -- Brayan Pena's RBI single in the fifth inning provided all the offense and Johnny Cueto pitched seven shutout innings for Cincinnati at Great American Ball Park.

Cueto (11-6) allowed four hits with three walks and nine strikeouts while snapping the Reds' seven-game losing streak. Aroldis Chapman pitched 1 1/3 innings for his 22nd save.

Cincinnati had not won since the All-Star break and dropped four-and-a-half games in the National League Central standings. First-place Washington (56-45) leads the NL East by two games over the Atlanta Braves.

White Sox 7, Twins 0

MINNEAPOLIS -- Chris Sale pitched eight shutout innings and Chicago blanked Minnesota.

Sale gave up five hits and struck out 12 while walking two. Two of the five hits he allowed never left the infield, and all five were singles. The Twins reached second base only once against Sale all night.

Alexei Ramirez and Tyler Flowers had two hits and two RBIs apiece to pace the White Sox.

Twins left-hander Logan Darnell, making his first major league start, was roughed up in his Target Field debut, allowing seven earned runs and 11 hits in five-plus innings.

Royals 7, Indians 5

KANSAS CITY, Mo. -- Jeremy Guthrie recovered from a shaky start and Billy Butler belted a two-run homer as Kansas City rallied from a five-run deficit to beat Cleveland.

Guthrie (6-9) gave up five runs in the fourth inning but allowed just three more hits and no runs in the next 3 2/3 innings to pick up the victory, snapping his three-game losing streak.

Butler's two-run homer in the fifth put the Royals ahead to stay.

Brewers 5, Mets 2

MILWAUKEE -- Mark Reynolds hit his 17th home run of the season to lead Milwaukee over New York at Miller Park.

Batting .364 on Milwaukee's current homestand, Reynolds finished the day with two hits and moved into a tie with left fielder Khris Davis for the team home run lead.

The Brewers added an insurance run in the eighth inning on a two-out RBI double by Davis, creating some breathing room for closer Francisco Rodriguez, who worked around a one-out double for his 30th save.

Mariners 4, Orioles 3

SEATTLE -- Baltimore rallied from a 4-0 deficit to pull within one run in the eighth inning but couldn't complete the comeback against Seattle.

Chris Young (9-6) threw seven shutout innings of two-hit ball to put the Mariners in control, but an eighth-inning error committed by Kyle Seager opened the door for three unearned Baltimore runs.

Mariners closer Fernando Rodney threw out a runner trying to steal in the ninth and posted his American League-leading 28th save of the season and the 200th of his career.

The Mariners snapped a four-game losing streak. Jesus Sucre and Dustin Ackley had third-inning hits to put runners on second and third before Baltimore starter Bud Norris intentionally walked Cano to load the bases. Kendrys Morales then got hit by a pitch to drive in a run for a 1-0 lead. Seager and Logan Morrison had RBI singles to push the lead to 3-0. Cano added an RBI double in the fifth to give Seattle a 4-0 lead.

Rays 3, Red Sox 0

ST. PETERSBURG, Fla. -- Tampa Bay kept inching closer to the pennant race and Boston keep backsliding as the Rays got just enough offense and timely pitching at Tropicana Field.

Grant Balfour guided the Rays out of jams in the sixth and seventh innings to post his first win in what has often been a frustrating season for the former closer. The right-hander (1-3) allowed one hit with a strikeout in 1 1/3 innings. In winning its ninth consecutive game, Tampa Bay (51-53) pulled six behind American League East-leading Baltimore. The Rays' streak is second only in club history to a 12-game run in 2004.

Boston (47-56) lost its fifth in a row after a five-game win streak.

Matt Joyce, Kevin Kiermaier and Yunel Escobar each had two hits and Ben Zobrist hit his eighth homer of the season in the seventh inning off Red Sox starter John Lackey (11-7) for the final margin.

Braves 5, Padres 3

ATLANTA -- Freddie Freeman and Tommy La Stella emerged from midseason slumps with three hits apiece to help give Atlanta starter Julio Teheran his 10th win.

Freeman went 3-for-5 with one RBI. La Stella was 3-for-4 with a walk. They were a big part of Atlanta's 11-hit attack.

The support helped Tehran (10-6), who entered the game with the best home ERA in the majors (1.23) but did not have his best stuff. He was lifted for a pinch hitter after six innings, allowing three runs and nine hits with five strikeouts.

Marlins 7, Astros 3