Rockies 5, Nationals 1: Tyler Colvin homered twice off Stephen Strasburg to back a masterful pitching performance by Drew Pomeranz.
Colvin hit a solo shot in the second inning and a two-run drive in the fourth to become the first player to hit two home runs against Strasburg in the same game. Colvin also singled in the sixth off Strasburg and hit a fly ball to the warning track against Ryan Mattheus in the eighth.
Strasburg (9-4) allowed three runs, two earned, and eight hits in six innings. The All-Star struck out six and walked only one, but he lost a third straight start for the first time in his three-year career.
Braves 5, Phillies 0: Brian McCann hit a grand slam and Tim Hudson tossed four-hit ball over seven innings.
The struggling Phillies generated nothing on offense. The five-time defending NL East champions are a season-worst 11 games under .500.
Hudson (7-4) nearly went pitch-for-pitch with Kyle Kendrick, who also threw seven scoreless innings and allowed four hits.
Cubs 8, Mets 7: Anthony Rizzo hit a three-run homer and Cubs closer Carlos Marmol caught a line drive and started a game-ending double play that blunted the New York Mets' bid for another ninth-inning comeback.
Travis Wood won his fourth straight start while Mets ace Johan Santana lasted only 42⁄3 innings and was tagged for 13 hits, tying a career high.
A night after they got two runs with two outs in the ninth to beat Philadelphia closer Jonathan Papelbon, the Mets scored three times off a wild Marmol. But with runners at first and second, Lucas Duda hit a liner up the middle that Marmol speared and flipped to first for the final out.
Giants 6, Pirates 5: Melky Cabrera hit his eighth homer of the season and Ryan Theriot drove in two runs as Barry Zito (7-6) survived five eventful innings to win for the second time in his last six starts.
Pittsburgh's Andrew McCutchen had three hits to raise his batting average to a NL-leading .360.
Tigers 4, Royals 2: Rookie Drew Smyly struck out a career-high 10 in six impressive innings and Delmon Young homered as Detroit got back to .500 for the first time since May 15. They had failed the last eight times when needing one win to reach the mark.