Updated

Carlos Beltran cranked a two-run homer as part of a six-run second inning and the St. Louis Cardinals held off a late rally to take the rubber match of a three-game set from the Milwaukee Brewers, 8-6, from Miller Park.

Allen Craig and Matt Holliday also homered for St. Louis, which has won four of five heading into a four-game set with Major League-leading Atlanta. Shane Robinson added three hits, all singles.

"That was a big win," said Cardinals manager Mike Matheny. "That team kept coming, and fortunately we kept doing what we needed to do and got enough room. That was a tough game."

Jake Westbrook started for St. Louis and tossed 4 2/3 innings, allowing five runs -- four earned -- on nine hits. Westbrook helped himself at the plate however, launching a two-run double in the second that sparked the big inning. Kevin Siegrist (2-1) got the win in relief.

"Just got to do a better job of staying away from the big inning, which I wasn't able to do," said Westbrook. "Getting two quick outs in the fifth and not being able to finish it off is pretty frustrating for me, but the bullpen came in and picked me up and the offense was great today."

Tom Gorzelanny (3-5) took the loss after getting shelled for all seven runs on 10 hits in just 3 2/3 innings.

"He didn't command the ball early," said Brewers manager Ron Roenicke. "When you don't hit your spots, they're gonna put a good swing on it."

The Cardinals struck first in the opening frame when Beltran, who had reached on a bloop single with one away, came around to score on a slicing double off the right field wall off the bat of Craig. Craig advanced to third but was stranded there as Gorzelanny settled in and got Yadier Molina to ground out softly to second.

St. Louis broke the game open in the second. With the bases loaded and no outs, Westbrook came to the plate and drove in two with a double into the gap in left-center. Matt Carpenter's sac fly to right plated the fourth St. Louis run of the game, and Beltran followed by launching his home run to deep center field. Craig's solo shot to center capped the frame.

Milwaukee cut into the deficit in the bottom of the third when Aramis Ramirez cranked a three-run shot to left. Jean Segura reached on a Pete Kozma error to lead off the inning, and Lucroy's single to right put runners on the corners for Ramirez, who got all of a hanging breaking ball from Westbrook.

The Brewers ripped four consecutive singles with two gone in the fifth, plating two runs and chasing Westbrook from the game. After Ramirez reached on an infield single and Khris Davis advanced him to third with a single to right, Juan Francisco and Sean Halton followed with RBI pokes, bringing Milwaukee to within 7-5.

Siegrist took the hill and with two on and two away, issued a walk to Logan Schafer before fanning pinch-hitter Jeff Bianchi to avoid further damages.

Milwaukee threatened again in the eighth but Edward Mujica pitched out of a bases loaded jam, striking out Francisco swinging.

Holliday gave the Cards an insurance run with a solo shot down the left field line in the top of the ninth, and Mujica yielded a home run to Schafer before earning his 33rd save of the season.

Game Notes

Prior to the game, Milwaukee RHP Rob Wooten was placed on paternity list. RHP Donovan Hand was recalled from Triple-A Nashville and pitched 1 1/3 scoreless innings of relief ... Davis went 3-for-4 to extend his hitting streak to eight games ... The Brewers went 3-for-14 with runners in scoring position and left 14 on base ... Jonathan Lucroy's first inning triple gave him five on the season, best in the majors amongst catchers ... St. Louis improved to 10-3 against Milwaukee this season.