C.J. Cron homered early and Wilson Ramos hit a tiebreaking RBI single in the eighth inning to lift the visiting Tampa Bay Rays to a 2-1 victory over Houston on Tuesday, ending the Astros' 12-game winning streak.

Blake Snell (9-4) gave up only three hits and one run in seven innings, but had to pitch around a career-high seven walks for his fifth consecutive victory. Sergio Romo pitched for the third straight game, taking over with one out in the ninth and allowing one hit for his third save a night after blowing the save in Houston's 5-4 win.

Matt Duffy doubled to start the eighth and advanced to third on a groundout by Jake Bauers. The Rays took a 2-1 lead when the single by Ramos sailed just over the head of a leaping Yuli Gurriel and into left field to allow Duffy to score.

Cron broke a career-long 0-for-23 slump with a solo homer with one out in the second inning to give Tampa Bay a 1-0 lead. It was the first hit since June 12 for Cron, who struck out 18 times during his hitless streak.

The Astros went 1-for-6 with runners in scoring position to come up one victory shy of setting the franchise record for longest winning streak in franchise history.

Justin Verlander yielded six hits and one run while fanning 10 in 6 ⅔ innings. Hector Rondon (1-2) took the loss.

New York 7, Seattle 2: Domingo German pitched two-hit ball over a career-high seven innings and Aaron Hicks homered for the third game in a row for the host Yankees. The Yankees boosted baseball's best record to 48-22, moving a season-best 26 games above .500. German struck out nine and walked none while throwing 67 of 96 pitches for strikes. He has 28 strikeouts in his past three starts, a span of 19 innings.

Texas 4, Kansas City 1: The visiting Rangers extended their winning streak to a season-high four games. The Royals have lost eight in a row. They own a major league-worst 10-28 home record, and their 22-51 overall mark is the worst in franchise history after 73 games.

Cleveland 6, Chicago 3: Mike Clevinger struck out 10 and gave up one run in 7⅔ innings for the host Indians, beating the White Sox for the third time this year.

National League

St. Louis 7, Philadelphia 6: Matt Carpenter hit a tiebreaking solo homer with two out in the top of the ninth for the Cardinals. Carpenter also had a tying two-run double in the seventh.

Milwaukee 3, Pittsburgh 2: Rookie Freddy Peralta allowed two hits in six stellar innings, Jesus Aguilar hammered his 14th home run of the season and the Brewers beat the host Pirates.

Los Angeles 4-1, Chicago 3-2: Albert Almora Jr. hit a game-ending RBI single in the bottom of the 10th inning as the Cubs salvaged a split of a day-night doubleheader, winning 2-1. The Dodgers won the first game 4-3 on pinch hitter Kyle Farmer's two-run double in the ninth.

Interleague

Atlanta 11, Toronto 4: Johan Camargo hit his first career grand slam and went 4-for-5 with five RBI for the visiting Braves. The Blue Jays had won seven in a row at home. Making his first start in Canada, Calgary-born righthander Mike Soroka was replaced one out away from qualifying for the victory.

Cincinnati 9, Detroit 5: Joey Votto hit his third career grand slam, powering the host Reds to a victory over the Tigers, who had won five in a row.

Washington 9, Baltimore 7: Trea Turner went 4-for-4 with a homer for the host Nationals, who defeated the Orioles for the sixth consecutive time.