SAN FRANCISCO (AP) -- Pittsburgh completed a three-game road sweep against the reigning World Series champion San Francisco by beating the Giants 5-2 on Wednesday, with Jordy Mercer scoring the go-ahead run in the fifth inning by hitting a homer for the second day in a row.
The victory moved the Pirates above the Giants in winning percentage, with both teams second in their respective National League division. The New York Mets remain second in the NL East after a loss at San Diego.
Houston's surprisingly strong start to the season continued, with the American League-leading Astros defeating Baltimore, while Tampa Bay won at the Los Angeles Angels thanks to a 10th inning homer.
Pittsburgh starter Francisco Liriano (3-4) got the better of opposing starter Tim Hudson (3-5) after a match of neat symmetry. Both retired the first eight batters in order, and both broke that sequence at the plate in the third inning: Liriano singled off Hudson, and Hudson then hit a double off Liriano. Both also recorded six strikeouts.
It was the fourth straight time Hudson had lost against the Pirates.
San Diego's James Shields threw seven strong innings to remain unbeaten this season and guide the Padres to a 7-3 win against the Mets, preventing New York regaining the NL East lead.
Shields (7-0) cruised through five innings, permitting just one runner past first base. He allowed two runs after that, but used three double-plays to avoid major damage. Shields set his personal best for consecutive wins to start a season, surpassing the 6-0 start with Tampa Bay in 2006.
Will Middlebrooks drove in three runs for the Padres, who seized on errors to score three unearned runs and another due to a hit batter with the bases loaded.
Houston rookie Lance McCullers pitched a complete game to lead the Astros to a 3-1 victory over Baltimore.
In only his fourth career start, McCullers (2-0) struck out a career-best 11 to lower his ERA to 1.88. McCullers hadn't lasted more than six innings in his previous starts. He retired 15 in a row before a single with two outs in the ninth, but produced another strikeout to end the game.
Chris Carter provided the offense with two homers for the Astros, who are off to the best start in franchise history with a 34-20 record. Houston has a 21-0 record this season when hitting more than one homer in a game.
Tampa Bay's Kevin Kiermaier led off the 10th inning with a homer to give the Rays a 6-5 win at the Angels.
Kiermaier drove a 2-1 pitch from closer Huston Street (2-2) deep into the right-field seats for his fourth homer of the season.
Earlier, Rays rookies Joey Butler and Steven Souza Jr. went deep to account for all the scoring in a five-run sixth inning.
Kansas City's Jason Vargas tossed six sharp innings to steer the Royals to a 4-2 win against Cleveland.
Vargas (4-2) made it stand up in his second start back from injury. He used a pair of double plays to wiggle out of jams, and limited the streaking Indians to two runs and no walks.
Three Royals players hit scoring doubles off Corey Kluber (3-6) in the third to give the Royals the lead.
Colorado's Nolan Arenado hit a game-winning sacrifice fly in the ninth inning to produce a 7-6 win against the Los Angeles Dodgers.
With the bases loaded and no outs, Arenado sent a fly to left-center. Chris Heisey caught it and threw home, but D.J. LeMahieu slid in easily at home plate. It completed a comeback after the Rockies trailed by two runs in the ninth.
Joc Pederson homered in his fifth straight game, becoming the first Dodgers player to do so since 2010.
Toronto's Mark Buehrle pitched his 11th career shutout as the Blue Jays beat Washington 8-0.
Buehrle (7-4) worked fast and effectively against the NL East leaders, needing only 93 pitches to end the game.
Toronto scored four runs in the first inning. The first four batters reached base against Taylor Jordan (0-2), who made his first start this season for the Nationals with Stephen Strasburg sidelined.
Minnesota's Trevor May pitched seven scoreless innings to give the Twins a 2-0 win against Boston to split their double-header.
May (4-3) only allowed runners in the third inning. He struck out nine and allowed no walks.
In the first game, Boston's Eduardo Rodriguez followed up his brilliant major league debut by allowing one run in seven innings as the Red Sox won 6-3.
Rodriguez (2-0) allowed just a solo homer in the third and an infield single in the sixth, and struck out seven.
New York's Garrett Jones and Mark Teixeira homered and Masahiro Tanaka gave up one run over seven innings in his return from injury as the Yankees defeated Seattle 3-1 to complete a three-game road sweep.
St. Louis' John Lackey pitched seven innings to lead the Cardinals to a 7-4 win against Milwaukee, improving the best home record in the majors to 22-7.
Arizona rallied to beat Atlanta 9-8 after having trailed 6-0 following two innings, with A.J. Pollock homering for the second consecutive game.
Chicago's Jose Abreu returned from a broken finger to hit a homer during a six-run second inning that lifted the White Sox to a 9-2 win against Texas.
Oakland's Sonny Gray pitched eight scoreless innings as the Athletics won 6-1 to hand Detroit its sixth straight loss.
Miami's Giancarlo Stanton and Jeff Baker hit back-to-back homers for the second time in five days, and the Marlins showed lots of fight -- literally and figuratively -- to beat the Chicago Cubs 7-3.
Philadelphia's Cody Asche scored from second base on a fielding error by the pitcher in the 11th inning, lifting the Phillies to a 5-4 win over Cincinnati.