Michael Wacha snapped a personal streak of 10 straight starts without a win while the St. Louis Cardinals completed their first series sweep at Wrigley Field in 28 years by beating the Chicago Cubs 7-2 Wednesday. Wacha allowed two runs on three hits over 6 2/3 innings as he broke a personal seven-game losing streak that dated back to late April. Cubs starter Jake Arrieta took the loss after a season-low-tying five-inning effort. He gave up two runs (one earned) on four hits while walking four and striking out six. The Cardinals (38-33) won their third straight and claimed their first three-game sweep in Chicago since May 17-19, 1988. The Cubs (47-23) saw their losing streak reach three. Wacha last won on April 23, when the Cardinals beat the Padres 11-2. A hard-luck streak of seven losses and three no-decisions followed. Astros 3, Angels 2 Marwin Gonzalez's RBI triple in the eighth inning provided the go-ahead run to help the Astros complete a three-game sweep of Los Angeles. Gonzalez plated George Springer with a 435-foot blast that put Houston ahead 2-1. Gonzalez then scored on a Carlos Correa groundout to make it 3-1. The Astros (37-36) saddled Angels right-hander Matt Shoemaker (3-8) with the loss despite his stellar performance. Shoemaker did not allow a hit until there were two outs in the fourth inning and carried a shutout into the sixth before Jose Altuve smacked a solo home run. Luke Gregerson (2-1) picked up a second consecutive win in relief and fellow right-hander Will Harris earned his sixth save. Yankees 9, Rockies 8 Starlin Castro led off the bottom of the ninth with a home run as the Yankees blew an early four-run deficit and rallied for a victory. The Yankees recorded their second walk-off win of the season and won for the fourth time in their last 10 games when Castro drove an 0-1 breaking ball from Jason Motte (0-1) into the left field seats. It was Castro's sixth career game-ending hit and first walk-off home run. The Yankees used their hard-throwing late-inning trio of Dellin Betances, Andrew Miller and Aroldis Chapman. They combined to get six strikeouts and Chapman (1-0) picked up the win by striking out DJ LeMahieu on a 102-mph pitch. Mets 4, Royals 3 Matt Reynolds belted his first career home run to snap a tie in the sixth inning as New York beat Kansas City. The Mets swept the two-game World Series rematch from the Royals and finished 3-1 this season against Kansas City, which won last year's Fall Classic in five games. Reynolds, who played left field for the first time as a professional, struck out in his first two at-bats before homering to the opposite field off Joakim Soria (3-3) with two outs in the sixth. The homer made a winner out of Noah Syndergaard (8-2). Marlins 3, Braves 0 Adam Conley pitched eight scoreless innings and Justin Bour blasted a two-run homer as Miami finally defeated last-place Atlanta. The Marlins improved to 1-4 against the Braves this year at Marlins Park. Atlanta has won six of eight games overall against Miami this season. Blue Jays 5, Diamondbacks 2 Russell Martin, Edwin Encarnacion and Troy Tulowitzki homered, J.A. Happ pitched five innings and the Blue Jays ended a three-game losing streak. The Blue Jays gained a split in the two-game series and ended a five-game winning streak by the Diamondbacks. Brewers 4, Athletics 2 Junior Guerra pitched seven strong innings, Scooter Gennett and Kirk Nieuwenhuis homered, and the Milwaukee Brewers ended their four-game losing streak. Guerra (4-1), a 31-year old rookie from Venezuela, gave up two runs on five hits in his 10th career major league start. Gennett went 3-for-5 with a two-run shot in the fifth inning, and Nieuwenhuis had a solo home run in the eighth. Indians 6, Rays 1 Trevor Bauer pitched a three-hitter for his second career complete game, and Carlos Santana had two hits and two RBIs as Cleveland completed a three-game sweep with a win over Tampa Bay at Progressive Field. The Indians, who also got a two-run home run from Jason Kipnis, have won six games in a row overall and 11 in a row at home. Tampa Bay lost its seventh in a row. Rays starter Chris Archer pitched six innings, giving up four runs on six hits and two walks. He fanned five. Results: Orioles 7, Padres 2; Tigers 5, Mariners 1; White Sox 8, Red Sox 6; Rangers 6, Reds 4; Giants 7, Pirates 6; Twins 6, Phillies 5; Dodgers 4, Nationals 3.