CHICAGO -- Matt Garza was determined to complete seven innings on Saturday night and admittedly unhappy to leave after giving up a two-out, run-scoring single.
But the Chicago Cubs' right-hander wasn't complaining about the bigger prize -- his fifth consecutive victory -- in a 6-4 victory over the St. Louis Cardinals.
"I don't really like not finishing the seventh," said Garza, who is 6-1 since coming off the disabled list in late May. "I kind of pride myself in getting through that seventh and maybe pushing through the eighth.
"But I threw six-plus and gave my team a chance to win."
Alfonso Soriano and Luis Valbuena each homered as the Cubs jumped on Cardinals starter Lance Lynn early in front of the season's largest Wrigley Field crowd (42,240).
Chicago scored in the second, third and fourth innings in the third of a four-game weekend series.
The Cubs opened a 3-1 lead in the second inning and were up 6-1 after four while Garza worked 6 2/3 innings for the win.
Garza may have been slightly off at times but was still tough to consistently beat.
"He seemed to give up a base hit an inning," Cubs manager Dale Sveum said. "But coming off the game he had the other day and the heat (an 8-2 win over the White Sox) he came right back out against the best offense in baseball and pitched a great game."
Lynn (11-4) departed after 4 1/3 innings. He gave up five earned runs on a season-high 10 hits. He struck out two and walked one.
Garza struck out Carlos Beltran on his 112th pitch of the night but was pulled after giving up a two-out hit to Allen Craig that scored Carpenter.
Right-handed reliever Matt Guerrier entered with a 6-2 lead and got Matt Adams on an inning-ending fly to left.
Garza allowed two earned runs on 10 hits, walked a pair and struck out four.
Blake Parker, Chicago's third pitcher of the night, gave up two hits while an error by right fielder Dave Sappelt loaded the bases with one out in the eighth.
That was it for Parker, and left-hander James Russell came in to face Carpenter and the potential tying run. Carpenter's sacrifice to left scored Jon Jay from third, but Daniel Descalso's fly to center ended the threat.
Jay singled off Cubs closer Kevin Gregg with two outs in the ninth to score Adams, but Pete Kozma grounded out as Gregg notched his 17th save.
Soriano, Starlin Castro, Sappelt and Darwin Barney each had two hits while Valbuena delivered two RBI. Jay went 4-for-5 while Adams had two hits for the Cardinals.
Tony Cruz's RBI single scored Jay from second to give the Cardinals a 1-0 lead in the second inning.
The Cubs replied with three runs as they batted around in the bottom of the inning.
Soriano doubled to lead off and scored on Dioner Navarro's single to right as Carlos Beltran's fielding error gave Soriano extra time.
Navarro reached second on a passed ball, moved to third on Brian Bogusevic's fielder's choice and came home on Sappelt's single up the middle for a 2-1 lead.
The Cubs loaded the bases when Barney reached on an infield single and Garza popped a short infield bunt to reach.
Castro tapped an infield single down the third-base line to score Sappelt.
"It was an inning that was very uncharacteristic of us," Cardinals manager Mike Matheny said. "But the bullpen came in and did a nice job and gave us an opportunity to get back in it. And we were back in it."
In the third, Soriano clubbed his 16th home run -- ninth since June 28 -- on Lynn's first pitch for a 4-1 lead.
St. Louis had runners on second and third in the fourth and Garza intentionally walked Cruz to load the bases for Lynn, who grounded to second.
Valbuena's two-run homer in the fourth drove home Barney for a 6-1 lead.
Lynn left in the fifth with runners on first and second and one out. Reliever Keith Butler hit Garza with a pitch to load the bases with two but escaped when Valbuena flew out to right.
"I guess you go through times in the season when things aren't going your way, and I'm definitely in one of those stints right now," said Lynn, who has lost three of his last four starts. "You've got to weather the storm and get through them, and good thing we have the All-Star break coming up so I can recoup."
NOTES: Sunday's series finale features National League wins co-leader Adam Wainwright (12-2, 2.30 ERA) against Cubs left-hander Travis Wood (6-6, 2.69 ERA). .... Jay maintains the National League's longest errorless streak (235 games) for center fielders, dating back to Aug. 24, 2011. ... RHP Jake Westbrook (5-4) likely will take the mound when the Cardinals open the second half Friday vs. the Padres. ... The Cubs claimed OF Cole Gillespie off waivers from the Giants on Saturday. He is a .218 hitter (26-for-119) in 53 games with Arizona (2010-11) and San Francisco (2013). He has spent most of the last three seasons in Triple-A.