PHOENIX — Patrick Corbin struck out nine in a combined four-hitter, David Peralta had four hits and two RBI, and the Arizona Diamondbacks rolled over the Philadelphia Phillies 6-0 on Wednesday.

Corbin (10-4) had the Phillies guessing most of the game, allowing four hits in 71/3 innings while reaching a career-high 183 strikeouts this season. The left-hander did not give up a home run for the ninth straight start, the longest stretch by a Diamondbacks pitcher since Brandon Webb in 2003.

Peralta hit a two-run triple off Vince Velasquez (8-9) in the third inning, sending the Phillies right-hander to his first loss since June 25 against the New York Yankees.

Peralta had his fourth four-hit game of the home stand and tied the franchise record with 10 hits in the three-game series against the Phillies. He is 18 for 31 since taking two days off with shoulder tightness last week.

PIRATES 4, ROCKIES 3: Adam Frazier had three hits and made a run-saving play in the field, and Pittsburgh won at Denver.

Chris Archer (4-5) was making his second start for the Pirates since being acquired from Tampa Bay before the July 31 trade deadline. He allowed two runs and five hits in five innings.

Frazier had two doubles and a single, but made what might have been his biggest contribution in the field. With runners on the corners and two outs in the eighth, Chris Iannetta hit a sharp grounder to the hole at second. Frazier made a diving stop and threw out Iannetta to end the inning and preserve the one-run lead.

CARDINALS 7, MARLINS 1: Matt Carpenter hit a tiebreaking homer for the second consecutive night, and St. Louis beat host Miami to win its fourth consecutive series.

Carpenter put St. Louis ahead with a home run leading off the sixth inning, his NL-leading 31st. His eighth-inning homer Tuesday helped St. Louis beat Miami 3-2, and he has homered in five of the past six games.

John Gant (4-4) pitched six innings and allowed one run, which scored in part because of a defensive lapse. He and three relievers combined to retire 21 batters in a row.

METS 8, REDS 0: Jacob deGrom struck out 10 over six innings, received rare significant run support and earned his first win in nearly two months as New York rolled at Cincinnati.

Brandon Nimmo tied a team record with three doubles and drove in three runs as the Mets won for the 22nd time in their last 66 games.

DeGrom (6-7) ended a seven-start winless streak, allowing four hits in a 100-pitch outing and lowering his major league-best ERA to 1.77.

AMERICAN LEAGUE

RANGERS 11, MARINERS 7: Joey Gallo homered twice and drove in four runs, Yovani Gallardo won his fourth straight start and Texas held on at home.

Gallardo (7-1) leads the majors with seven wins since June 23. He allowed three hits, two runs and three walks while striking out two in six innings.

Gallo also has been hot, with 10 of his 31 homers in his past 19 games. He went 3 for 5 to raise his batting average above .200 for the first time since June 16.

ORIOLES 5, RAYS 4: Trey Mancini hit a go-ahead two-run double in the ninth, and Baltimore got a road win despite committing five errors.

Sergio Romo (2-3) allowed consecutive hits to Mark Trumbo, Danny Valencia and Mancini in the ninth, the only three batters he faced. It was Romo’s seventh blown save. Tampa Bay has played five straight one-run games and lost four of them.

Mike Wright Jr. (3-0) got two outs in relief, and Mychal Givens pitched the ninth for his third save.

ANGELS 6, TIGERS 0: Justin Upton and Albert Pujols hit back-to-back homers in the fifth inning, and Los Angeles completed a three-game sweep at home.

Kole Calhoun hit a leadoff homer and rookie Jaime Barria (7-7) pitched five-hit ball into the sixth inning for the Angels. Los Angeles was in a 1-6 skid before getting back to .500 in this series with the struggling Tigers, who scored only eight runs on an 0-6 California road trip.