ST. LOUIS -- Adam Wainwright was beginning to wonder if he would ever throw a complete-game shutout.
"It was starting to be one of those things that looms in the back of your mind," he said.
It took 97 major league starts and 138 in the minor leagues but Wainwright finally conquered the elusive goal, allowing only two hits to lead the St. Louis Cardinals to a 8-0 victory over the Milwaukee Brewers on Friday night.
Wainwright (8-3) struck out eight, walked one, and retired the last 18 hitters he faced after a leadoff walk to Prince Fielder in the fourth inning.
"Luckily, I can cross that off my list and just go out and pitch," Wainwright said.
Wainwright is 5-0 at home and has allowed just two earned runs in his last 29 innings. He lowered his ERA to 2.05.
Colby Rasmus drilled a two-run homer for St. Louis, which won for the sixth time in eight games. The Cardinals broke a four-game home losing streak against the Brewers, who have won 13 of their last 17 at Busch Stadium.
Milwaukee lost for the fifth time in six games.
Wainwright needed just 103 pitches to finish his gem. He threw first-pitch strikes to 22 of 30 batters and had only two three-ball counts.
"We've been shut out a few times but that's the best pitching performance we've seen all year," said Milwaukee manager Ken Macha. "That curveball was so good."
"He hit the mitt 90 percent of the time," said St. Louis manager Tony La Russa. "Command, stuff, composure against a really good hitting team. That was major league-plus right there."
St. Louis third baseman Felipe Lopez said it was a thrill to play behind Wainwright.
"He is unbelievable, I've got no words for it," Lopez said. "He works fast, he throws strikes. That guy is a workhorse, man."
Rasmus provided the necessary offense with his ninth homer of the season in the sixth off Milwaukee starter Randy Wolf (4-5). It was Rasmus' first homer of the season against a left-handed pitcher and put St. Louis up 4-0.
"It felt good [with] the struggles I've had against lefties," Rasmus said. "I try to fight hard against them."
Albert Pujols drove in two runs, one on a bases-loaded sacrifice fly in the third -- his 152nd career RBI with the bases loaded.
Wolf (4-5) sent the first six batters down in order on 20 pitches before running into trouble in the third. Rasmus drew a leadoff walk and Brendan Ryan followed with a single up the middle. One out later, Rasmus scored on Lopez's grounder to third.
Wolf gave up five earned runs in 6 2/3 innings. He struck out four and walked four.
Brendan Ryan improved to 6 for 10 lifetime against Wolf with two of the Cardinals' nine hits.
St. Louis Rams QB Sam Bradford, the No. 1 overall pick in the NFL draft, threw out the first pitch with fellow Oklahoman Matt Holliday on the receiving end. ... Cardinals RHP Kyle Lohse had a soft cast removed from his surgically repaired forearm Friday, although the arm is still wrapped until stitches dissolve, and expects it'll be another week until there's a better idea of a timetable for his rehab. ... A representative for major league baseball visited with Brewers manager Ken Macha before the game about pace issues. Macha said the team's two young catchers have occasionally crossed signals with pitchers. ... Milwaukee SS Alcides Escobar made a pair of fine defensive plays in the fifth inning. He robbed Ludwick of a hit with a diving catch. ... The Cardinals recorded their seventh sellout of the season (43,261).