PHOENIX — The San Francisco Giants had been giving up homers in bunches, failing to get clutch hits and watching the losses pile up after a strong start to the season.
Even for a team that's won two of the previous three World Series titles, it was a tough stretch to take.
Brandon Belt hit a two-run single in the eighth inning and the Giants fought back after allowing three homers in the fourth to beat the Arizona Diamondbacks 6-4 Monday night and end a five-game losing streak.
"A much-needed win," Giants manager Bruce Bochy said. "The boys battled hard. You have a lead, they come back to take the lead and that can be deflating. But they kept grinding."
San Francisco scored three runs off Ian Kennedy the first two innings, including a solo homer by Belt in the second. Arizona hit three homers while scoring four runs off Matt Cain to go on top, but the Giants fought back in the eighth against Brad Ziegler (1-1).
Nick Noonan, a replacement after Pablo Sandoval left with discomfort in his right arm, got it started with a leadoff double. Ziegler then loaded the bases with a pair of walks and Belt came through with the hit the Giants had been waiting for, lining a two-run single up the middle to break a 4-all tie.
Reds 2, Cardinals 1
At Atlanta, Andrelton Simmons hit a tiebreaking sacrifice fly in the seventh inning, then made an eye-popping play to start the ninth as Atlanta beat Washington to ended its four-game losing streak.
Atlanta beat the Nationals for the eighth straight time dating to last season. The Braves swept three games at Washington earlier this month.
Reds 2, Cardinals 1
At St. Louis, Mat Latos outpitched Adam Wainwright, extending his scoreless innings streak to 17, and Cincinnati got an RBI apiece from Joey Votto and Xavier Paul in a victory over St. Louis.
Aroldis Chapman worked a perfect ninth for his sixth save, finishing off the third road victory in 11 games for the Reds and handing St. Louis its third straight loss.
Brewers 10, Pirates 4
At Milwaukee, Brewers pitcher Yovani Gallardo hit one of five home runs for Milwaukee, which went back-to-back twice against Pittsburgh.
Gallardo (3-1) also tossed three-hit ball over seven innings, retiring his final 13 batters while improving to 10-2 against Pittsburgh. He and Norichika Aoki hit consecutive homers in the fourth before Carlos Gomez and Yuniesky Betancourt repeated the feat in the fifth.
Cubs 5, Padres 3
At Chicago, Darwin Barney and Cody Ransom each drove in two runs as Chicago defeated San Diego.
Barney hit a pair of RBI doubles and Ransom went 2 for 4 with a home run against the team that let him go this month. Both players also made nice defensive plays in the seventh inning with runners in scoring position to preserve the lead.
Scott Hairston also homered for the Cubs.
Marlins 4, Mets 3, 15 innings
At Miami, Nick Green hit a game-winning sacrifice fly and Miami rallied for two runs in the 15th inning to hand New York its fifth consecutive loss.
Miami trailed 3-2 when Greg Dobbs singled with one out in the 15th against Shaun Marcum (0-2), a starter working out of the bullpen after the Mets ran out of relievers. Justin Ruggiano walked and Rob Brantly hit an RBI single to right.
Green followed with a fly ball to left field, and Ruggiano scored easily. Green also tied the game with a sac fly in the ninth against Mets closer Bobby Parnell, preventing Matt Harvey from improving to 5-0.
Rockies 12, Dodgers 2
At Los Angeles, Nolan Arenado hit his first major league home run, and Wilin Rosario and Dexter Fowler also homered for the Rockies.
Arenado, one of the Rockies' top prospects playing in his second big league game, had his first three hits. His two-run homer in the fourth made it 12-0.
Tyler Chatwood (1-0) shut out the Dodgers over six innings, striking out five with no walks. He also had three hits and two RBIs.
Indians 9, Royals 0
At Kansas City, Mo., Ubaldo Jimenez pitched into the eighth inning, Ryan Raburn hit two home runs and Cleveland pounded Kansas City to split their four-game series.
Raburn hit a three-run shot in the fifth inning and a solo homer in the eighth. Raburn finished with four hits and Jason Kipnis also went deep to pace a suddenly potent Indians offense.
Not that all the offense was needed.
Astros 9, Yankees 1
At New York, Carlos Corporan homered among his four hits and drove in four runs, leading Houston to the victory.
In their first game in the Bronx as an AL team, the Astros peppered Andy Pettitte (3-2) for 10 hits and seven runs, both season highs for the left-hander. Brandon Barnes and Corporan had two-run doubles and Barnes added an RBI single and a double. Barnes and Corporan each set career highs for hits and RBIs.
Tigers 4, Twins 3
At Detroit, Prince Fielder's towering three-run homer in the sixth inning put Detroit ahead, and the Tigers held on for their fourth straight win.
Detroit trailed 3-1 when Andy Dirks reached on a bunt single and Miguel Cabrera walked. Fielder hit the first pitch over the wall in left-center for an opposite-field homer. That part of the fence is about 405 feet from home plate.
Mariners 6, Orioles 2
At Seattle, Michael Saunders homered in his first at-bat since he was activated from the disabled list and Joe Saunders pitched his eighth career complete game to lead Seattle past Baltimore.
Kyle Seager had a two-run triple and Jason Bay added three hits as the Mariners won their third straight game for their longest winning streak of the season. Their latest victory came in front of announced total of 9,818 at the 14-year-old ballpark.
Matt Wieters hit a two-run homer for Baltimore.