Cubs 10, Nationals 9: Darwin Barney's tiebreaking double in the ninth inning capped a wild comeback as visiting Chicago rebounded from an eight-run deficit.
Tony Campana reached on a fielder's choice, stole second and scored when Barney doubled to right, his third hit and RBI of the game.
Each Washington starter had at least one hit as the Nationals built an 8-0 lead in the fourth inning.
Chicago scored six runs in the sixth and two runs in the seventh to tie it. Both teams scored in the eighth.
Carlos Marmol pitched a scoreless ninth for his 18th save in 23 chances. He hit Rick Ankiel with a pitch leading off the inning, and walked Laynce Nix. But Marmol retired Roger Bernadina on a fly to right to end the game.
Braves 6, Rockies 3: Freddie Freeman hit a three-run homer, his fourth of the series, as host Atlanta completed its first four-game sweep of the Rockies in 18 years.
Jason Heyward also homered for the streaking Braves, who have won nine of 10 and 14 of 17 as they head into a series with NL East-leading Philadelphia.
Marlins 5, Astros 0: Mike Stanton homered for the first time in 20 games and Brad Hand allowed two hits over seven innings for his first win in the major leagues.
Indians 5, Blue Jays 4: Travis Hafner hit a grand slam in the bottom of the ninth inning to cap Cleveland's five-run rally after starting the inning down 4-0.
Hafner's 12th career slam made a winner of Tony Sipp (4-1), who yielded Jose Bautista's 29th homer in the eighth. But Frank Francisco loaded the bases without getting an out. Luis Perez came on and struck out Michael Brantley before Asdrubal Cabrera lined an RBI single to left. Then Hafner homered.
Red Sox 10, Orioles 4: Dustin Pedroia hit a three-run homer and host Boston added three consecutive home runs in the seventh as the Red Sox beat struggling Baltimore and climbed a half-game ahead of the Yankees into first place in the AL East.
Six different Boston players homered, including three straight by David Ortiz, Josh Reddick and Jarrod Saltalamacchia that helped the Red Sox blow open the game in the seventh inning. Jacoby Ellsbury added a two-run homer and Adrian Gonzalez hit a solo shot.
Andrew Miller (3-0) won his third straight start.
Rays 5, Yankees 1: Jeff Niemann gave up Derek Jeter's 2,998th hit but little else, B.J. Upton homered and drove in three runs, and visiting Tampa Bay beat New York in the first of 11 straight games against the Yankees and Red Sox, the two teams they trail in the AL East.
Ben Zobrist homered, tripled and singled for Tampa Bay, which tagged Bartolo Colon early in one of the worst outings of his surprising comeback season.