The Pittsburgh Pirates feasted on San Francisco's pitchers with a season-high offensive performance to overcome the Giants 12-8 in a slugfest on Wednesday.
The Pirates banged out their most hits (18) and runs of the year to get their fourth win in five games and consolidate their strong start to the season.
Lead-off hitter Starling Marte inspired the onslaught with four hits and four runs scored, while the team got three RBIs apiece from Andrew McCutchen and Neil Walker in the home triumph.
Pittsburgh (39-26) moved to within three games of first-place St Louis in the National League Central standings after the Cardinals fell to the New York Mets 5-1.
In Los Angeles, one night after exchanging fists in a mass brawl, the Arizona Diamondbacks fought back with their bats in an 8-6 win over the Dodgers over 12 innings.
The D-Backs scored four times in the top of the 12th to break a 4-4 tie, then held on as the Dodgers tried to rally with two runs in the bottom half of the inning.
Arizona's Martin Prado and Gerardo Parra each had run-scoring hits in the 12th and finished with two RBIs.
In Oakland, Brandon Moss blasted a pair of home runs as the Athletics topped the New York Yankees 5-2.
Moss gave the A's an early lead with his two-run bomb in the second inning. After the Yankees pulled back to 3-2 in the seventh, he delivered another solo shot in the next inning.
John Jaso added a pair of RBIs for Oakland (40-27), who moved one game in front of Texas for the AL West division lead.
The Rangers lost 5-2 to Cleveland.
In Kansas City, the Royals completed a final-inning comeback to stun the AL Central-leading Detroit Tigers 3-2 in 10 innings.
Justin Verlander tossed seven scoreless innings and the Tigers held a 2-0 lead going into the bottom of the ninth, where Lorenzo Cain delivered a two-run homer to tie the scores.
Kansas City's Eric Hosmer then came through with the game-winning RBI single in the 10th to finish the contest.
The win was the seventh in eight games for the Royals.