SAN FRANCISCO — Madison Bumgarner became the first pitcher in 48 years to hit two grand slams in a season, and Buster Posey also hit a slam that boosted the San Francisco Giants to an 8-4 win over the Arizona Diamondbacks on Saturday.
Posey and Bumgarner became the first batterymates in major league history to hit grand slams in the same game.
A double by Bumgarner helped set up Posey’s slam in the fifth. Bumgarner homered the next inning — he also hit a slam on April 11 against Colorado.
The last pitcher to launch two slams in a season was Tony Cloninger, who hit both in the same game for Atlanta on July 3, 1966, against the Giants.
Bumgarner (10-7) threw 6 1-3 innings to end his three-game losing streak. Vidal Nuno (0-1) allowed four runs and six hits in five innings during his second start with Arizona.
The Giants finished the first half by winning five of nine. That followed a stretch of 18 losses in 23 games that cost them their lead in the NL West.
Cody Ross hit a two-run homer for the Diamondbacks, 5-8 in their past 13 games.
METS 9, MARLINS 1
NEW YORK — Jacob deGrom had a tiebreaking single and again shut down the Marlins with seven impressive innings, David Wright doubled twice and drove in two runs, and the New York Mets completed a three-game sweep of Miami with a 9-1 victory on Sunday.
Wright, Curtis Granderson and Juan Lagares each had RBI doubles, and Chris Young added a sacrifice fly for New York in its eighth win on a 10-game homestand heading into the All-Star break.
New York jumped over the Marlins, losers of four straight, and into third place in the NL East at 45-50.
NATIONALS 10, PHILS 3
PHILADELPHIA — Jayson Werth homered and drove in four runs, and Tanner Roark pitched seven strong innings to lead Washington over Philadelphia.
Ryan Zimmerman also went deep and had two RBIs, Ian Desmond knocked in two runs, and Anthony Rendon had three hits and an RBI for Washington, which won the last two games of the series and stayed tied with Atlanta atop the NL East entering the All-Star break.
Philadelphia scored two unearned runs off Aaron Barrett in the ninth to end with three runs or fewer for the 49th time this season.
Roark (8-6) allowed a run and four hits. He struck out six and walked none.
The Phillies dropped to 8-41 overall and 2-29 in their last 31 games when failing to score four runs. Cody Asche had two doubles and an RBI for Philadelphia, which fell 10 games behind Washington.
BRAVES 10, CUBS 7
CHICAGO — Chris Johnson had three hits, including his third homer in two days, and Atlanta beat the Chicago Cubs to stay in a virtual tie with Washington for first place in the NL East.
Although even in terms of games back, the Braves are one percentage point behind the Nationals. Atlanta (52-43) has won three of four since a four-game losing streak.
Johnson hit a long drive to straightaway center field for a three-run shot in a four-run third inning against Travis Wood (7-8).
RED SOX 11, ASTROS 0
HOUSTON — Clay Buchholz allowed three hits and struck out a career-high 12 in his fifth career shutout in Boston’s rout of Houston.
Brock Holt had a career-best five hits, including a leadoff homer, to help the Red Sox to their fourth victory in five games heading into the All-Star break.
All of the hits Buchholz (4-5) allowed were singles, and he didn’t walk a batter in his first shutout since June 2, 2013, against the Yankees.
INDIANS 3, WHITE SOX 2
CLEVELAND — Yan Gomes’ two-run homer in the eighth inning gave Cleveland a win over the Chicago White Sox.
Gomes drove in all three Cleveland runs. His home run to right off Javy Guerra (0-2) came after the White Sox scored two runs in top of the inning to take a 2-1 lead.
Nick Swisher led off with a single before Gomes, who also had an RBI single in the second, hit a 1-1 pitch into Chicago’s bullpen.
RAYS 3, BLUE JAYS 0
ST. PETERSBURG, Fla. — All-Star David Price scattered five hits in eight-plus innings to win his fourth consecutive start and Tampa Bay beat Toronto.
Price (9-7), who had his start pushed back one day because of a stomach virus, struck out five and walked one. The left-hander was pulled after giving up a leadoff single in the ninth to Melky Cabrera.
Because Price pitched on Sunday, he is ineligible to play in the All-Star game Tuesday night in Minnesota.
R.A. Dickey (7-9) gave up two runs and five hits over six innings. Toronto has not won a road series against Tampa Bay since April 2007, a span of 22 sets.
Toronto has lost eight of 10 overall.
ROYALS 5, TIGERS 2
KANSAS CITY, Mo. — Eric Hosmer’s RBI double capped a five-run seventh inning and Kansas City avoided a four-game sweep with a victory over Detroit.
Four of the runs were charged to Justin Verlander (8-8), who started the inning with a two-hit shutout but loaded the bases on three straight singles.
The come-from-behind win still leaves the second-place Royals 6½ games behind the Tigers in the AL Central.
ANGELS 10, RANGERS 7
ARLINGTON, Texas — Mike Trout doubled twice and drove in four runs as the Los Angeles Angels beat Texas and took a five-game winning streak into the All-Star break.
Texas (38-57) lost its eighth in a row and has the worst record in the majors.
Trout, who will start the All-Star game in the AL outfield, sent three runs home by blooping a two-out double in the second inning. He broke a 4-all tie with a double in the fourth.
REDS 6, PIRATES 2
CINCINNATI — Kris Negron hit his first career home run, and All-Star Todd Frazier added a two-run shot as Cincinnati rolled into the break with a win against Pittsburgh.
Negron, called up from Triple-A Louisville on Thursday for his first appearance in the majors since playing four games in 2012, celebrated his first major league start with a three-run homer off Francisco Liriano (1-7) in the second inning. The RBIs were also the first of his career, and the hit was his second.
Frazier homered on the first pitch from Vance Worley in the sixth to send the Pirates to a 2-5 mark on their trip.
BREWERS 11, CARDS 2
MILWAUKEE — Elian Herrera got five hits while filling in for mourning shortstop Jean Segura, and Milwaukee ended a seven-game losing streak by routing St. Louis.
The Brewers tied a season high with 19 hits and took a one-game lead over St. Louis in the NL Central at the All-Star break.
A’S 4, MARINERS 1
SEATTLE — Sonny Gray limited Seattle to six hits and one unearned run in Oakland’s victory.
Gray (10-3) earned his 10th victory and Sean Doolittle recorded the final four outs for his 14th save.
DODGERS 1, PADRES 0
LOS ANGELES — Hyun-Jin Ryu struck out 10 and outpitched first-time All-Star Tyson Ross, and Yasiel Puig singled home the only run in the Los Angeles Dodgers’ win over San Diego.
A day after beating the Padres 1-0, the Dodgers did it again and took a one-game lead over San Francisco in the NL West into the All-Star break.
Puig struck out his first two times up, then singled home Dee Gordon in the sixth inning.
TWINS 13, ROCKIES 5
DENVER — Brian Dozier cranked up for the Home Run Derby at the All-Star game with two homers, and Minnesota beat Colorado.
Dozier hit a solo homer in the eighth and added a three-run shot an inning later for his first career multihomer game.
Late fill-in Chris Parmelee ignited a five-run first inning for the Twins with a two-run single. He replaced outfielder Oswaldo Arcia, who was scratched with the flu.
Hughes (10-5) earned his 10th win despite allowing five runs and 10 hits in five innings.
Brett Anderson (0-3) was rusty in his first outing since April as he allowed six runs — five earned — in five innings.