ST. LOUIS -- Scott Rolen's bat woke up Friday night.
"I had a good September tonight," said Rolen, who entered in a 2-for-21 slide. "That's about all I've done."
Chris Duncan also homered twice for the Cardinals, who maintained a 5 1/2-game division lead over second-place Cincinnati and they close in on their third straight NL Central title,. It was the most runs for the Cardinals since they beat San Diego 15-5 on May 8, 2005.
Rolen hit a three-run homer in the first off Brad Hennessey (5-5), an emergency starter after Jason Schmidt had a tight back. Rolen added a solo shot against in the sixth, giving him 21 homers and putting the Cardinals ahead 7-2. He added a bases-loaded double off Billy Sadler in a seven-run sixth that boosted the lead to 13-2.
Rolen had his 19th multihomer game, his first since Aug. 15, 2004, at Atlanta. His previous career high for RBI was six against Pittsburgh in on Aug. 19, 2003.
"I don't know what happened," he said. "I haven't done much the last two weeks. But all of a sudden, you get a day off, and today I came back, started seeing the ball a little better, had some opportunities and got some results."
After playing in only 56 games last year due to a left shoulder injury, Rolen still is adjusting to playing a full schedule.
"Every month that I've played this year is new ground from the shoulder surgery I had last year," he said. "This one didn't start off too well. Hopefully, it picks up."
San Francisco remained 2 1/2 games behind San Diego, the wild-card leader.
"In this game, sometimes you win and sometimes you lose," San Francisco's Randy Winn said.
Duncan hit a solo homer in the first, a two-run homer in the second and walked with the bases loaded in the sixth, giving him four RBI. It was the second multihomer game for Duncan, who also went deep twice Aug. 10 at Cincinnati.
"I felt good, and it was just one of those things that he fell behind in the count and I ended up getting some good pitches to hit and put a good swing on it."
Albert Pujols had a two-run single, giving him 122 RBI.
Jeff Suppan (12-7) allowed three runs and eight hits in seven innings, striking out six. He is 6-2 with a 2.30 ERA since the All-Star break and is 3-0 in six starts since losing to Pittsburgh 7-1 on Aug. 11.
"Our offense really took over tonight," Suppan said. "For me, it was just trying to go up there and throw up zeros, as many as I could."
Hennessey allowed six runs and five hits in two innings, dropping to 0-3 with a 10.70 ERA in his last five starts.
"For whatever reason, the past month and a half, I haven't been the same person I was the first three months," Hennessey said. "I've got to find my way back there."
Pedro Feliz homered in the seventh for San Francisco. He has 22 this season, tying his career best, set in 2004.
- Rolen's home run was his first since Aug. 23 at New York.
- Hennessey lasted just one inning against the Dodgers on Aug. 19, allowing seven runs and seven hits.
- The Cardinals are 21-9 vs. the NL West.