Adrian Beltre and Nomar Mazara hit home runs and drove in three runs as the Texas Rangers beat the Kansas City Royals 7-4 Saturday night for only their third win in the last 13 games. Beltre homered in a four-run seventh with Mazara and Ian Desmond aboard to put the game away. It was his career 427th home run, which ranks 49th on the all-time list. Mazara hit a two-run homer in the fourth and doubled in another run in the fifth. Left-hander Cole Hamels (11-2) picked up the victory, allowing one unearned run and five hits over 5 2/3 innings. Astros 7, Angels 2: Collin McHugh produced his seventh consecutive run-suppressing start and was backed by a pair of home runs from Evan Gattis. The Astros notched their 10th consecutive win over the Angels behind McHugh and Gattis, who socked his 14th and 15th homer. Shortstop Carlos Correa added his 15th homer leading off the fifth. Dodgers 7, Cardinals 2: Two big innings and a solid start from Kenta Maeda got Los Angeles back into the win column after a 16-inning loss on Friday. Adrian Gonzalez belted his eighth home run of the season for the Dodgers to start the sixth, which also featured an RBI single from Joc Pederson. Reds 6, Diamondbacks 1: Jay Bruce hit a three-run homer and Keyvius Sampson pitched well for Cincinnati. Prior to Saturday's game, Arizona manager Chip Hale promised retribution after Jean Segura was hit by a pitch following his leadoff homer the night before. Brewers 6, Cubs 1: Kirk Nieuwenhuis hit a pair of home runs and Zach Davies pitched 6 1/3 solid innings as Milwaukee snapped a two-game losing streak. Davies scattered three hits, walked a pair and struck out four. He has allowed only three earned runs over his last three starts and is 7-1 with a 2.83 ERA over his last 14 outings. John Lackey went six innings for Chicago and allowed three runs on five hits and a pair of walks while striking out five. Nationals 3, Padres 2: Stephen Drew belted a triple with one out in the bottom of the ninth inning off Kevin Quackenbush to drive in the winning run for Washington. Drew's hit scored Anthony Rendon, who singled to start the ninth. Orioles 5, Indians 2: Mark Trumbo hit a two-run homer, and Pedro Alvarez added a solo shot to support seven shutout innings from starter Kevin Gausman. Trumbo hit his homer in the first as the Orioles won their third straight game. Marlins 7, Mets 2: Jose Fernandez improved his Marlins Park record to 26-1 and Giancarlo Stanton drilled a massive two-run, go-ahead homer. Stanton went 4-for-5 with three RBIs for his first four-hit game since Aug. 8, 2012. He also has five homers in his past three games against the Mets. His third-inning homer down the left-field line bounced off the scoreboard about 50 feet up. Unimpeded, the ball was projected to have traveled 441 feet. Giants 2, Yankees 1: Mac Williamson capped an eventful day by getting the tiebreaking single with one out in the top of the 12th inning as San Francisco ended a season-high six-game losing streak. Williamson broke a deadlock he created with a home run in the fifth by hitting a 1-0 pitch from Anthony Swarzak up the middle past the diving attempt of shortstop Didi Gregorius. It was Williamson's second big late-inning hit in less than 24 hours. On Friday, he tied the game with an eighth-inning double off Andrew Miller, getting the hit on a full count after falling behind 0 and 2. Pirates 7, Phillies 4: Pittsburgh scored five runs in the fifth inning en route to the win. Gregory Polanco and David Freese each drove in two runs for Pittsburgh. Pirates right-hander Tyler Glasnow, making his second career start, left in the fourth inning because of right shoulder discomfort. He gave up two runs. Mariners 14, Blue Jays 5: Nelson Cruz hit a grand slam and a three-run homer, Kyle Seager hit a two-run blast, Hisashi Iwakuma allowed two runs in seven innings to pace the Seattle offense. Cruz hit his ninth career grand slam against R.A. Dickey in the third and added a three-run shot against Drew Storen in the eighth. Other results: Tigers 3, White Sox 3 (suspended); Rockies 8, Braves 4; A's 4, Rays 3; Twins 11, Red Sox 9.