CHICAGO -- Carlos Zambrano shrugged off his latest home run, admitting that being a starting pitcher makes it easier for him to hit.
Whatever the reason, Zambrano is far more dangerous than most pitchers when he comes to the plate.
Zambrano has 19 career homers, tops in franchise history for pitchers, but isn't interested in a regular opportunity to hit.
"My job is to pitch. That's the thing I know best," he said. "I think being an everyday player, hitter it makes it tough because pitchers study you and know how to pitch. If they figure out how to pitch to me every day I don't think I would hit that many home runs."
Micah Hoffpauir had a three-run homer for the Cubs, who closed within 2½ games of the NL Central-leading Cardinals. Zambrano (5-4) allowed three runs and five hits.
Albert Pujols was 1 for 4 with two RBIs for the Cardinals, but also committed a two-run error in the seventh inning.
"He doesn't get enough credit what he does defensively," Cubs shortstop Ryan Theriot said. "Albert always seems to be in the right spot at the right time. Yeah, that was definitely a surprise."
St. Louis starter Kyle Lohse, who was activated from the 15-day disabled list before the game, struggled in his first appearance since leaving an outing against Cincinnati on June 3 because of a strained right forearm.
Lohse (4-5) surrendered Theriot's one-out double in the first and walked Alfonso Soriano before Hoffpauir hit his next pitch for his eighth homer.
"Soriano put together a really good at-bat. Hoffpauir's first pitch [was] a curve," said Lohse, who allowed four runs and eight hits in five innings. "It wasn't a bad pitch but he jumped all over it. As the game went on I pitched pretty well."
St. Louis rallied to tie it at 3 but Zambrano hit a solo drive in the fourth to give the Cubs the lead again.
"He swings a big bat. He can hit," Theriot said. "It's no surprise. I think everybody knows if they throw one way where he is swinging he is going to hurt you."
Zambrano settled down after a slow start, striking out six of the last 10 hitters he faced. He finished with seven Ks and two walks.
The Cubs added two more in the seventh, taking advantage of two errors. With one out and the bases loaded, second baseman Skip Schumaker made an errant throw that moved catcher Jason LaRue off the plate that allowed Soriano to score. Hoffpauir and Milton Bradley came home when Koyie Hill hit a routine grounder that went between Pujols' legs for his seventh error of the season.
LaRue thought he got his feet on the plate for the forceout on Schumaker's throw, but plate umpire Randy Marsh disagreed.
"He was out," LaRue said. "It basically appeared the way I tried to get back to the plate that I didn't get it, but, I know I got it."
Pujols hit a two-run double off Zambrano in the third to give him 87 RBIs on the year, and Joe Thurston also singled in a run in the inning.
To make room for Lohse, the Cardinals optioned reliever Blake Hawksworth to Triple-A Memphis. ... In the fifth inning, Pujols hit what looked to be a routine infield popup. Theriot lost the ball in the sun and dropped it. Pujols was running hard right out of the box and tried to get to second, but was tagged out by second baseman Jeff Baker right before hitting the bag. ... Cubs 1B Derrek Lee was out of the lineup after leaving Saturday's game with neck spasms, but was expected to start the nightcap.