ST. LOUIS -- Pete Kozma singled home the tiebreaking run in the sixth inning and the St. Louis Cardinals ended a four-game losing streak, beating the Cubs 8-4 and avoiding a sweep.
Matt Carpenter and Allen Craig each had three hits and drove in a run. Jon Jay and David Freese both drove in two runs, though they only had one hit between them.
The Cardinals dropped five of six to begin a 10-game homestand.
Edward Mujica worked the last two innings for his 31st save in 33 chances, overcoming Starlin Castro's leadoff double in the eighth while working with a one-run cushion.
Randy Choate (2-1) faced one batter, getting leadoff man David DeJesus to pop out with two men on to end the sixth after the Cubs had tied it at 4 on RBI singles by Castro and Darwin Barney off Seth Maness.
Barney, like Kozma an eighth-place hitter, had two RBI singles. He's batting .215 overall but has a .317 average against St. Louis with two homers and 10 RBIs.
Tony Cruz doubled with two outs in the sixth off Blake Parker (1-2) and scored easily on Kozma's single. Parker was the winner Saturday with an inning of relief.
Jay added a sacrifice fly in the seventh off Hector Rondon and the Cardinals got RBIs from Carpenter and Craig in the eighth off Michael Bowden.
The Cardinals combined two singles, a walk, a steal and a sacrifice fly off Edwin Jackson in a three-run first. Matt Holliday had one of the RBIs plus a steal off Jackson's slow move to the plate, before Jackson finally retaliated by picking off Jay.
Holliday handed the Cubs an unearned run in the third when he camped under Junior Lake's two-out high fly to medium left but then whiffed on the catch and DeJesus scored from first.
The Cubs settled for their first series win in St. Louis since a three-game sweep Sept. 13-15, 2010. They'd been 0-6-1 the previous seven series, and were trying for a three-game sweep.