Wandy Rodriguez held the visitors to one hit through seven innings of the Pirates' 6-0 victory at PNC Park.
Ryan Braun hit a three-run homer in the Milwaukee Brewers' 5-4 win over the Chicago Cubs, while Evan Longoria hit a two-run homer as the Tampa Bay Rays defeated the Oakland Athletics 8-3.
The Houston Astros ended a five-game losing run with a 3-2 win over the Cleveland Indians - JD Martinez and Rick Ankiel hit back-to-back homers in the second inning.
Yu Darvish struck out 10 while allowing only three hits over seven innings for Texas, helping the Rangers to a convincing 7-0 victory over the Seattle Mariners.
Justin Ruggiano hit a solo homer off Aroldis Chapman in the ninth inning as the Miami Marlins snapped the Cincinnati Reds' winning streak at four games with a 2-1 win.
There was success for the New York teams, with the Mets downing the Washington Nationals 7-1 and the Yankees seeing off the Blue Jays 9-4.
Roy Halladay tossed a two-hitter over seven innings and the Philadelphia Phillies ended a four-game losing run with an 8-2 success against the St Louis Cardinals in a game delayed by 35 minutes in the seventh.
Jhoulys Chacin impressed before leaving the action with an apparent back injury as the Colorado Braves sunk the Arizona Diamondbacks 3-1.
There were also wins for the Los Angeles Angels - at home to the Detroit Tigers - and the San Francisco Giants, who beat the San Diego Padres 3-2.
The Boston Red Sox announced the postponement of their game against the Kansas City Royals at Fenway Park due to the search for a suspect in the Boston Marathon bombings.
Rain meant the postponement of the LA Dodgers v Baltimore Orioles game, while the weather also prevented the scheduled series opener between the Chicago White Sox and the Minnesota Twins taking place at US Cellular Field.