Jake Westbrook (3-1) gave up one run over seven innings for the Cardinals. He has allowed two earned runs or less in all four of his starts this season.

St. Louis, which set season highs for runs in an inning and a game, won for the eighth time in its last 12.

Jon Jay also had three hits and drove in three runs to pace a 15-hit attack. Skip Schumaker added two hits and three RBIs, and Holliday knocked in a pair.

The Cardinals sent 12 batters to the plate in the third and chased Gallardo (1-2), who gave up eight earned runs in two-plus innings. 

In Los Angeles, Clayton Kershaw won his 10th straight decision, Andre Ethier hit a two-run homer and Los Angeles beat Washington in a matchup of the top two teams in the National League.

Kershaw (2-0) allowed three hits over eight innings with six strikeouts and a walk. The league's reigning Cy Young Award winner became the first Dodgers pitcher to win 10 consecutive decisions since Ramon Martinez from August 1995 through May 1996.

Kershaw also joined Ed Roebuck and Orel Hershiser as the only Dodgers to win 12 decisions in a row at home since the franchise moved from Brooklyn to Los Angeles in 1958. Kershaw's home streak has spanned 16 starts, with a 1.22 ERA.

In Philadelphia, Paul Maholm outpitched Roy Halladay to lead Chicago past Philadelphia.

Maholm (2-2) allowed a run on five hits in 6 1-3 innings, dropping his ERA from 8.36 to 6.20. Starlin Castro had two hits and an RBI, and Tony Campana had two hits and scored twice for the Cubs.

Ty Wigginton homered for Philadelphia, which has scored two runs or less in 11 of 20 games this season.

In Denver, Carlos Gonzalez was at the center of an 11-run fifth inning, hitting a homer and a single to drive in five of his six RBIs, and Colorado overcame Scott Hairston's cycle in a wild win over New York.

Ramon Hernandez hit his sixth career grand slam - and first for the Rockies this season - and Troy Tulowitzki and Dexter Fowler also homered for Colorado, which set a season high for runs.

Hairston became the 10th player in Mets history and first in the majors this season to hit for the cycle. He drove in four runs but it wasn't enough on a night when pitching was an afterthought and the ball was flying all over the place in the Mile High City's thin air.

In Miami,  Joe Saunders pitched a three-hitter, Jason Kubel tied a career best with four hits and Arizona sent Miami to its sixth straight loss.

Kubel extended his hitting streak to 10 games. Miguel Montero drove in three runs and Aaron Hill homered for the Diamondbacks.

Saunders (2-1) struck out four and walked two, getting the third shutout of his career and dropping his ERA from 1.29 to 0.90.

Miami starter Carlos Zambrano (0-2) pitched six innings, giving up three runs and 10 hits.

In Cincinnati, Jose Altuve drove in two runs with a triple and a double, leading Wandy Rodriguez and the Houston Astros past Cincinnati.

Jed Lowrie also had two hits for the Astros, who have won consecutive games for the first time since a three-game winning streak April 7-9.

Rodriguez (2-2) gave up two runs and six hits in six innings. The left-hander allowed only one earned run over 14 innings in his previous two starts.

Astros first baseman Carlos Lee left in the first because of a sprained left ankle and is expected to miss a couple of games.

In Atlanta, Tommy Hanson allowed one run in six innings, Dan Uggla and Chipper Jones came through in a four-run seventh and the streaking Atlanta Braves defeated Pittsburgh.

The Braves won for the 13th time in 16 games after an 0-4 start - their worst since 1988.

Hanson (3-2) worked around six hits and three walks, his only blemish an RBI single by Garrett Jones in the fourth. Kris Medlen worked the final three innings, earning his first career save. Uggla and Jones drove in two runs apiece in the seventh to break open a 2-1 game.

In San Francisco, Nick Hundley matched his career high with four hits to help San Diego beat San Francisco.

Cory Luebke (3-1) pitched six strong innings to win his third consecutive start. He gave up two runs and seven hits. Four of the Padres' seven victories have come in his last four starts.

Huston Street worked the ninth for his third save.

Buster Posey homered and drove in two runs for the Giants. Angel Pagan also connected and Pablo Sandoval extended his season-opening hitting streak to 20 games.