San Francisco scored six unanswered runs through three innings before heavy rain delayed play for almost three hours in Detroit.

When play resumed, the Tigers finally got on the board with two runs but it mattered little as the Giants recorded a crushing win at Comerica Park.

Jake Peavy pitched six innings without allowing an earned run for the Giants, who stayed two games behind the Dodgers in the National League West division after the Los Angeles franchise edged the Arizona Diamondbacks 2-1.

The Tigers - second in the AL Central - were left to count the cost of their home defeat as they fell half-a-game behind the Seattle Mariners in the race for the second wildcard.

Seattle - third in the AL West - recorded their fourth consecutive win with a 7-5 victory over the lowly Texas Rangers.

There was relief on the faces of the Milwaukee Brewers after they snapped a nine-game losing streak.

The Brewers downed St Louis 6-2 to close within three games of the Cardinals in the NL East.

Scooter Gennett drove in three runs for the Brewers.

In other results, Yoenis Cespedes singled the winning run in the 10th inning as the Boston Red Sox upstaged AL East rivals the Toronto Blue Jays 9-8.

The New York Yankees were beaten 1-0 by the Kansas City Royals, while the Tampa Bay Rays beat AL East leaders the Baltimore Orioles 3-0.

Curtis Granderson and Travis d'Arnaud both had three-run homers as the New York Mets crushed the Cincinnati Reds 14-5.

The Colorado Rockies were 3-0 winners over the San Diego Padres thanks to Tyler Matzek, who pitched a three-hitter for his first career shutout.

Chris Carter hit his 36th homer of the season as the Houston Astros downed the Oakland Athletics 4-3.

Kole Calhoun's go-ahead run on a sacrifice fly in the 10th inning helped the Los Angeles Angels to a 7-6 victory over the Minnesota Twins.

The Miami Marlins routed the Atlanta Braves 11-3, the Philadelphia Phillies downed the Washington Nationals 9-8 and the Chicago White Sox lost 2-1 to the Cleveland Indians.

Meanwhile, the Pittsburgh Pirates and the Chicago Cubs will resumed at 3-3 in the top of the seventh inning on Saturday after the match was postponed due to heavy rain.