ST. LOUIS -- Jaime Garcia bounced back from a career-worst performance by forgetting all about it.
Garcia (6-1) allowed a run and four hits while improving to 4-0 with a sparkling 0.46 ERA in five home starts this season. He struck out eight and walked one in his first game since he surrendered 11 earned runs in a 15-4 loss at Colorado last Saturday.
"As soon as I was done pitching, I forgot about it and started to move forward," Garcia said of his 10-out outing at Coors Field. "I never really doubted myself. I know I have the stuff."
Berkman snapped an 0-for-13 skid with his 12th homer, a drive to center on a 1-1 pitch from Ryan Dempster (4-5) in the first inning. It was Berkman's first homer since May 15 at Cincinnati and provided Garcia with all the support he would need.
"A three-run homer in the first against a real good pitcher, that puts your team in a hole," Dempster said. "I just didn't execute a fastball in and I paid for it."
Berkman, like Garcia, quickly forgot about the past few games.
"It was good to finally come out and get some hits," Berkman said. "I kind of had a few rough games. This was a good night all around."
Garcia retired his first 13 batters on 46 pitches before walking Carlos Pena. Lou Montanez followed with a run-scoring double and advanced to third on an error by right fielder Berkman. But Garcia fanned Tyler Colvin and D.J. LeMahieu to end the threat.
Garcia has allowed just two earned runs in 39 innings at home this year.
"He's put together a real good year," Chicago manager Mike Quade said. "He threw strikes and changed speeds. He's a good looking left-hander."
Ryan Theriot got the first inning started with a double that extended his career-best hitting streak to 17 games, the longest current run in the majors. Pujols drew a walk to set the stage for Berkman's home run.
Pujols pushed the lead to 6-1 in the fifth, connecting for his 10th homer of the season and No. 100 in the new Busch Stadium. He has seven homers in 49 career at-bats against Dempster.
Chicago has lost four in a row and six of seven. The Cubs had won their last five games in St. Louis.
Yadier Molina had two hits and reached base three times for the Cardinals, who improved to 2-3 on their seven-game homestand. Berkman added a single in the fifth to complete a 2-for-4 performance.
Dempster gave up six runs and eight hits in five innings. He has surrendered a team-high 13 home runs.
"They did a good job of grinding out a lot of at-bats," Dempster said. "I made a couple to mistakes to some pretty good hitters and they made me pay."
Pena has reached safely in 25 of his last 27 games. ... The Cardinals improved to 6-3 on Fridays. ... St. Louis OF Allen Craig, who flied out as a pinch hitter in the eighth, has 11 hits in his last 23 at-bats. ... LeMahieu singled in the eighth for his first major league hit. ... Colvin is mired in an 0-for-18 slump.