Updated

After losing nine of 13 games and four straight, the top of the St. Louis batting order took control before the Cardinals lost another.

Matt Carpenter, Carlos Beltran, Allen Craig and Matt Holliday combined for nine hits and five runs to lead St. Louis to an 8-4 win against the Chicago Cubs and avoid a three-game sweep.

Carpenter and Craig stood out in particular. Carpenter went 3-for-5 with two runs and an RBI and Craig went 3-for-3 with two runs and an RBI.

Beltran did have to leave the game after five innings due to a right foot contusion. Beltran, who went 1-for-3 with a run, was replaced by Matt Adams.

The Cardinals gave Joe Kelly an early lead, but after he allowed four runs -- three earned -- in 5 1/3 innings, he received a no decision. Randy Choate (2-1) got the win after recording the last out in the sixth.

"I thought the guys did a real good job of situational hitting, getting the runs in when they had money on the table," Cardinals manager Mike Matheny said.

The Cubs' Edwin Jackson escaped with a no decision despite giving up four runs in five innings. Blake Parker (1-2) took the loss after giving up a run in the sixth, as the Cubs lost for the 10th time in 14 games.

"He was missing location bad and got away with some stuff and got away with a couple walks," Sveum said of Jackson.

St. Louis wasted no time getting the lead. Carlos Beltran singled and Allen Craig walked before Matt Holliday grounded a base hit to right, scoring Beltran and giving St. Louis a 1-0 lead. Craig, who moved to third on the base hit, scored when David Freese lofted a sacrifice fly to center field. After Holliday stole second base, he scored on Jon Jay's single to cap the three-run first inning.

Holliday gave a run back in the third. After David DeJesus drew a two-out walk, Holliday dropped Junior Lake's fly ball, allowing DeJesus to score.

The Cardinals struck again in the third. Matt Carpenter doubled before Craig and Holliday walked to load the bases with one out. Carpenter scored on Freese's ground out to third to extend the Cardinals' lead to 4-1.

The Cubs got the run right back. Welington Castillo walked and reached third on Starlin Castro's two-out single in the fourth. Darwin Barney picked up an infield single to score Castillo and cut the score to 4-2.

Chicago tied the game after Castillo led off the sixth with a base hit and moved to second on Donnie Murphy's base hit. After Seth Maness replaced Joe Kelly, Castro singled to right to score Castillo and Murphy scored on Barney's base hit to center field, tying the game at four.

In the bottom half of the sixth, St. Louis regained the lead. Tony Cruz picked up a two-out double and scored on Pete Kozma's single to center field.

St. Louis added some cushion in the seventh. Craig and Holliday started the inning with back-to-back singles and Freese followed with a walk to load the bases with one out in the seventh inning. Jay gave the Cardinals an insurance run with a sacrifice fly, making the score 6-4.

Carpenter doubled home Daniel Descalso and Craig picked up a double to score Carpenter in the eighth to cap the scoring and give St. Louis an 8-4 lead.

Game Notes

Holliday went 2-for-3 and extended hit hitting streak to nine games and on- base streak to 17 games ... Despite the loss, the Cubs still posted their first winning series in St. Louis since sweeping the Cardinals in a three-game set from September 13-15, 2010 ... Castillo, who went 1-for-4, is hitting .405 (17-for-42) with three doucles, two home runs and six RBI in 15 games dating back to July 25 ... St. Louis went 4-for-12 with runners in scoring position and stranded nine while Chicago hit 3-for-12 with RISP and left nine on base.