ST. LOUIS - Allen Craig homered on a four-hit day that included three RBIs, and Matt Adams hit a three-run homer as the St. Louis Cardinals beat the Milwaukee Brewers, 9-3, Wednesday.

Jon Jay had three hits and a walk his first four trips to the plate. The Cardinals avoided a three-game sweep by the team with the best record in the major leagues.

Shelby Miller (3-2) worked around homers to Mark Reynolds and Carlos Gomez, allowing three runs and six hits in six-plus innings.

Milwaukee is 20-8, a franchise record for wins through the season's first full month.

Matt Garza (1-3) joined the lengthy list of injured Brewers when he was removed in the fourth inning because of a bruised right thumb.

Marlins 9, Braves 3 - Nathan Eovaldi pitched seven innings, and Miami scored nine runs off NL ERA leader Aaron Harang to beat Atlanta.

Harang (3-2) gave up 10 hits in 42/3 innings, and his ERA rose from 0.85 to 2.97. The Marlins tied a season high with 15 hits, including seven for extra bases.

Marcell Ozuna hit a three-run homer, and Christian Yelich added his first home run of the year. The homers were the first allowed by Harang this year.

Tigers 5, White Sox 1 - Max Scherzer threw six scoreless innings as Detroit finished a two-game sweep at Chicago.

Scherzer (3-1) won his third straight start, allowing four hits while striking out seven to become the first pitcher in team history with at least seven strikeouts in each of his first six starts.

He also became the first in the majors to do it since Tim Lincecum began the 2010 season with at least six strikeouts in his first seven starts.

Scherzer's strong outing helped the Tigers win for the fourth time in five games.