Carpenter (9-9) pitched a four-hitter to record his 14th career shutout in the St. Louis Cardinals' 2-0 win.
|More on Brewers at Cardinals|
Rafael Furcal provided the offense with a solo home run but Carpenter needed just 2 hours, 5 minutes for his first shutout since he blanked the Brewers 3-0 exactly two years before in Milwaukee. He struck out five and walked two, one intentional.
After losing the series opener on Monday, the Cardinals won the last two to move within 8½ games of the first-place Brewers in the NL Central with 19 games to play.
The Cardinals are 6½ games behind Atlanta in the wild card race with the Braves coming to St. Louis on Friday to start a three-game series. St. Louis won five of its last six against Milwaukee to earn a season series split (9-9).
"Nice win for us," Carpenter said. "Going into an off day, with a big series coming up, to be able to get that win against a quality pitcher, a quality club we need to beat, it was a nice win all around and obviously I pitched well."
Carpenter was 1-2 with a 5.68 ERA in three previous starts this season against Milwaukee. He said the difference was being able to locate his fastball.
"If you can locate your fastball on both sides of the plate, you're going to have success," Carpenter said. "If you get the ball in the middle of the plate, you're not.
"I was able to get quick early outs because I was able to get balls on the corner. These guys obviously are a real nice hitting team."
Corey Hart, who had his 18-game hitting streak snapped, felt his team was the victim more of bad luck than good pitching.
"We hit balls at people," Hart said. "Sometimes a pitcher has to be a little lucky to win games. He threw the ball well, but if those balls fall, it's a different story."
St. Louis manager Tony La Russa saw a different game.
"Real good stuff, real good location, great concentration," La Russa said of Carpenter. "He was the whole package tonight."
The benches and bullpens emptied in the top of the ninth after Carpenter (9-9) struck out Nyjer Morgan. The two had words and Morgan headed toward the mound before being restrained by teammate Prince Fielder. No punches were thrown and Morgan was ejected.
"He's a good player," Carpenter said. "He's a serious talent. He just plays the game a different way. I'm not going to play his game."
Morgan said Carpenter yelled an expletive at him after the strikeout.
"There's really nothing to explain," Morgan said. "I was walking off the field until he said (that).
"Just hard ball. It was kind of a quick hook, but whatever."
The home run was the third for Furcal in the last seven days against Milwaukee. He went deep twice in Milwaukee last week when the Cardinals swept the Brewers.
Furcal made it 2-0 by leading off the fifth with his seventh home run.
Greinke went seven innings and allowed two runs and eight hits with four strikeouts.
- The Brewers' Casey McGehee was ejected for arguing a called third strike that ended the fourth inning. McGehee slammed his bat on the ground in the direction of home plate umpire D.J. Reyburn. He was replaced in the lineup by Craig Counsell .
- The start was Carpenter's 30th, giving him eight career seasons with 30 or more.
- Milwaukee's Chris Narveson (10-6) will face the Phillies' Cole Hamels (13-7) in the opener of a four-game series at Miller Park on Thursday. St. Louis' Edwin Jackson (11-9) will oppose the Braves' Randall Delgado on Friday.
- A moment of silence was held before the game in honor of former St. Louis Blues Pavol Demitra and Igor Korolev, who were killed earlier Wednesday in a plane crash in Russia.
- Pujols' double play was the 152nd for the Cardinals.