The victory means the Cubs (94-60) need one more win to ensure home-field advantage throughout the NL playoffs.
Chicago's Casey McGehee got his first major league hit and had two RBIs off St. Louis starter Braden Looper (12-14). The Cardinals started the day six games back in the NL wild card race.
Chicago manager Lou Piniella said before the game he'll go back to his regulars when the Cubs go on a final road trip to New York and Milwaukee next week because they'll be playing teams still alive for the wild card.
"If we need to rest a player here or a player there, that we can do. I just can't play the lineup like we're playing today the rest of the week," Piniella said. "It just wouldn't be fair to the (contending) teams and it wouldn't be fair to us because we haven't clinched home field advantage yet either."
McGehee had an RBI single in the sixth and pinch-hitter Jim Edmonds delivered a sacrifice fly to make it 4-1. Cedeno doubled in the seventh, advanced to third after a walk and double play and scored on a wild pitch by Kyle McClellan.
Chicago broke a 1-1 tie in the fourth when Felix Pie tripled and scored on McGehee's sacrifice fly to center by just beating Skip Schumaker's strong throw to catcher Jason LaRue, who blocked the plate. When home plate umpire Chad Fairchild ruled Pie safe -- replays were inconclusive -- it brought an argument from both LaRue and Cards' manager Tony La Russa.
Fukudome's strong throw to catcher Koyie Hill got Cesar Izturis at the plate in the top of the fifth. Izturis singled, stole second and tried to score standing up on Schumaker's single but was tagged out.
The Cardinals scored in the first when Schumaker singled, Ryan Ludwick followed with a double and Albert Pujols hit a sacrifice fly to deep center.
Chicago tied it in the third on back-to-back singles by Fukudome and Ronny Cedeno and an error on St. Louis second baseman Felipe Lopez, who threw wide to second trying to start a double play.
Four Cubs relievers combined to allow just one hit over the final four innings.
Notes: Piniella said he wouldn't set his playoff rotation until the Cubs find out who they will be playing. ... Dempster threw 67 pitches. He finished the regular season 14-3 at Wrigley Field, the most home wins by a Cubs pitcher since Fergie Jenkins set the club record with 15 in 1967. ... Chicago reliever Chad Gaudin, who hadn't pitched since Aug. 29 because of a sore back and wasn't with the team for the clincher Saturday, worked the seventh inning. ... Looper surrendered nine hits and four runs in six innings.