ST. LOUIS -- The Brewers led for most of the night, but the Cardinals showed who's boss in the National League Central.

Matt Holliday, the Cardinals' difference-making midseason pickup, clubbed a tie-breaking, three-run home run with two outs in the seventh inning and St. Louis held on for a 7-6 win on Tuesday at Busch Stadium that pushed the Brewers further down the standings.

Brewers third baseman Casey McGehee drove in four runs, including three in the first inning with his 12th home run, and the Brewers scored two more in the ninth against Cards closer Ryan Franklin. But Franklin escaped, leaving the Brewers 13 games back in a division that looks like it will go to the Cardinals for the first time since 2005.

"They're running away with it," said Brewers reliever Todd Coffey, whose first pitch to Holliday was sent over the left-field fence. "We needed a win tonight. We've got them eight more times, but that hurts right there. I know it does."

The loss went to fellow Brewers reliever David Weathers (3-5), who had just walked Albert Pujols intentionally to put two runners on base for Holliday. Joel Pineiro (14-9) pitched seven innings for the win -- the Cardinals have won each of his past 11 starts -- and Franklin earned his 36th save hours after signing a two-year contract extension.

The Brewers made it interesting. J.J. Hardy drove in one run with a groundout and Felipe Lopez singled home another, making Lopez the tying run at first base. Jody Gerut fouled off a pair of two-strike offerings before fanning on a Franklin splitter to end the game.

"It's the kind of games we have with Milwaukee," Cards manager Tony La Russa said. "They've got a good ballclub. They're very competitive. If they're ahead, we give them a scare at the end. If we're ahead, they give us a scare. We've played a lot of great games together, and it was scary."

The Cardinals have become a scary team since acquiring Holliday from the A's. They are 26-9 since the July 24 trade and have opened a 10 1/2-game lead over the second-place Cubs. The Brewers sit 2 1/2 games behind Chicago.

"Nobody in this room has quit," said Milwaukee starter Braden Looper, who pitched six innings Tuesday but didn't figure in the decision. "The guys on offense kept battling. It's frustrating."

The Brewers jumped out early against Pineiro, who has not lost since June 28 and had allowed more than three earned runs just once since May 29. Felipe Lopez led off the game with a single and Prince Fielder worked a two-out walk before McGehee clubbed his homer for a 3-0 lead.

The Cardinals answered in the fourth inning by rattling off four consecutive hits, a streak sparked by Pujols' Major League-leading 42nd home run. Holliday, Ryan Ludwick and Colby Rasmus all followed with ground-ball singles, Rasmus' was good for a run. Looper finally got his first outs of the inning when he induced a Yadier Molina double play, but Ludwick scored on the play to tie the game at 3.

"I just didn't feel as sharp today overall," said Looper, who had limited opponents to two runs in six innings in each of his previous two starts. "In that inning, there were a couple of jam shots. ... That happens."

The Pujols at-bat was a big one. He fouled off three full-count offerings before connecting on a cut fastball that didn't cut.

"He doesn't miss those very often," Looper said.

The teams traded runs in the fourth inning. McGehee made it 4-3 with an RBI single in the top of the inning, but the Cardinals sparked a rally of their own in the bottom half with two on and nobody out, capped by Molina's tying single. Molina had batted .103 over his previous 10 games before Tuesday.

In the seventh, the Cards pushed ahead against Weathers, who had held opponents hitless in 25 consecutive at-bats over eight outings before Skip Schumaker's one-out double. The runner froze on Brendan Ryan's popout to bring up Pujols, who was 10-for-19 with three doubles and three homers in his career against Weathers.

Brewers manager Ken Macha made what he felt was the obvious call: intentionally walk Pujols and call for Coffey for the equally-dangerous Holliday.

Holliday apparently agreed.

"I would anticipate Albert being walked if Babe Ruth was hitting behind him," he cracked. "Forty-two home runs on Sept. 1, I think he's the best player ever. Of all time. You look at his first nine seasons, it would be hard to argue."

The Weathers-to-Coffey formula had worked as of late for Macha, despite the fact that opponents entered the night hitting .281 against Coffey with runners on base and just .183 in that situation against Weathers. Other than closer Trevor Hoffman, Coffey has been the Brewers' most reliable reliever this year. He's also a ground-ball pitcher, which serves him well with men on base. He had the previous two days off and was presumably well-rested. And Holliday is an excellent breaking-ball hitter, so Coffey's power fastball was called for.

This time, he grooved a fastball down the middle and Holliday didn't miss.

"I went right after him and I got beat," Coffey said. "I thought it was in, but up a little bit more than I wanted it to be. I knew he was first-ball hacking right there in that situation, and I was trying to use that to my advantage. It didn't work. ...

"If I give up a run right there, OK, but not a three-run homer. To me, that's unacceptable. I let everybody down."