ST. LOUIS -- Albert Pujols seems to be hitting home runs off everybody these days, so Dave Bush had no reason to feel bad about serving up a long ball to the three-time NL MVP. The important thing was getting everyone else out.
Pujols' eighth homer in 14 games led off the fourth inning, the same inning in which four straight Diamondbacks connected off Bush six days earlier. But that was the only damage against Bush, who pitched six stingy innings to bounce back quickly in a 3-2 victory over the suddenly sliding St. Louis Cardinals on Tuesday night.
"You have to forget about it," Bush said. "Some good ones, some bad ones. But after a day or two you've got to flush it and prepare for the next one."
Pujols led off the fourth with his 31st homer of the season and 397th of his career. The Cardinals managed only three more singles against Bush (6-10) and have lost three in a row at home to NL Central also-rans, including a pair of losses to the Cubs.
St. Louis is 10-5 against the division-leading Reds, but 15-17 against the Brewers, Cubs and Astros. The Cardinals still have one of the league's best home records at 39-21.
Third baseman Felipe Lopez, who committed two errors, blamed himself for this one.
"We lost the game because of me," Lopez said. "If I make those plays, we win."
Rookie reliever John Axford got five outs for his 18th save in 20 chances and sixth longer than an inning. He allowed one run with a wild pitch in the eighth before getting Matt Holliday to tap out with two on for the third out. Pujols drew his major league-leading 27th intentional walk before Holliday's groundout.
"It's a tough decision," Axford said. "It's really a pick-your-poison type thing, knowing I had to give it everything I've got and go right after Holliday."
Pujols passed Joe Carter for 50th on the career list, one behind Dale Murphy, and is 7 for 15 the last four games.
But Pujols' last three homers, and five of the last eight, have come with the bases empty.
"I wouldn't say it was a terrible pitch. He's a pretty good hitter," Bush said. "No one was on base, so if he hits one out that limits the damage."
Cardinals rookie Jaime Garcia (10-6) got six days of rest for the second straight time and was hurt only in the third when Lopez's fielding error on a potential double-play ball opened the door for a three-run rally highlighted by Casey McGehee's 19th homer. Garcia allowed five hits and struck out six, and all the runs were unearned.
In Garcia's last three starts, opponents have scored seven unearned runs.
"All I try to focus on is control what I can control," Garcia said. "Whatever happens, make a pitch."
McGehee had three hits, including a liner off Garcia's backside in the second, and is batting .411 (23 for 56) the last 14 games with five homers and 19 RBIs.
"He's on fire," Brewers manager Ken Macha said. "I told him I didn't want to stand next to him because I was afraid of spontaneous combustion."
In his last outing Bush became the fourth pitcher in major league history to allow four consecutive homers when he gave up solo shots to Arizona's Adam LaRoche, Miguel Montero, Mark Reynolds and Stephen Drew in the fourth inning. This time, Holliday followed Pujols' homer with a drive to the warning track in right that was snared by Corey Hart, and the next two batters went down quietly.
Bush has a 4.63 ERA mostly due to five horrible starts in which he allowed 32 runs in 18 1/3 innings. He has a 2.89 ERA in his other 19 starts.
Lopez botched another potential double-play ball in the second, although Garcia worked out of a bases-loaded jam by striking out Jonathan Lucroy and Bush. Lopez has been the starter since David Freese was sidelined by injuries in June but also has struggled at the plate, mired in a 4-for-37 slump, and before the game manager Tony La Russa said Tyler Greene would play third in the minors to give the team a backup option.
Cardinals RHP Jeff Suppan (groin) threw a three-inning simulated game, but La Russa said he was throwing under control. The Cardinals might give Suppan spot starts when he's back to keep giving Garcia extra rest down the stretch. ... Pujols has 37 career homers against Milwaukee, tied for third-most after breaking a tie with St. Louis batting coach Mark McGwire.