Hitters who fail to consistently strike the ball hard won't last long in the major leagues.

But, every now and then, it works best not to make solid contact.

Milwaukee Brewers starter Wily Peralta learned that lesson the hard way Thursday night as the St. Louis Cardinals scored six runs in the third inning on an assortment of bleeders, broken-bat bloopers, and yes, a legitimate hit or two.

Those six runs stood up for the rest of the night as the first-place Cards held off the Brewers, 6-5, at Miller Park.

"I say it all the time, you see weird things and it's not always fair," said Brewers manager Ron Roenicke after his club dropped its second in a row at home.

"Sometimes you make decent pitches and guys get hits, but you don't usually see that many in one inning. That makes it tough."

The six-run third is the kind of inning that keeps pitchers awake all night. It started with leftfielder Ryan Braun making a diving catch of a sinking liner off the bat of Pete Kozma, who made the mistake of actually hitting the ball hard.

Pitcher Jake Westbrook dunked a shallow pop into center for a hit, and Matt Carpenter managed to punch a single to left despite having Peralta break his bat into kindling. Carlos Beltran flied out to right, but Peralta kept the inning alive - much to his later chagrin - by drilling Matt Holliday on the upper left arm with a pitch.

Allen Craig dumped a broken-bat single to left, scoring two runs, including Carpenter on a close play at the plate. Yadier Molina did get good wood on a pitch, smacking a single through the right side to score Holliday on another close play.

David Freese found a good spot for his grounder, sending it up the middle on a hundred hops for another run-scoring hit, and John Jay followed with a single to left to load the bases. Kozma, robbed by Braun to start the inning, made it five consecutive two-out singles by ripping one to left to send home two more runs, with Freese just getting in before the tag.