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. 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 got the win in relief. Tom Gorzelanny took the loss after getting shelled for all seven runs on 10 hits in just 3 2/3 innings.