Mitchell Boggs, another rookie, allowed just one run in two innings as the Cardinals surged ahead again on homers by Brian Barden and Ryan Ludwick, who had two for the game. But Chris Perez walked Aaron Miles with one out in the eighth and then surrendered a go-ahead homer to Alfonso Soriano.
"We had some real heroes with our young pitchers (Walters, Boggs), who gave us a chance to win," said manager Tony La Russa. "It ends up being a tough loss."
Ludwick, who sat out a game in Arizona earlier this week, much to the consternation of many Cardinals fans, hit his fourth and fifth homers of the season and extended his two-season hitting streak to 20 games. But he preferred to talk about his last at-bat, a strikeout against Carlos Marmol with two on and nobody out in the ninth.
"I didn't get the job done. That's all there is to it," he said. "Three straight fastballs right by me.
"The biggest at-bat of the trip and it didn't happen the way I wanted it to."
CUBS 8, CARDINALS 7: Rookie RHP P.J. Walters, summoned from Class AAA Memphis as a replacement for injured RHP Chris Carpenter, gave up three runs in the first two innings but wound up striking out seven in four innings as he totaled 98 pitches. The Cardinals had three homers -- two by RF Ryan Ludwick -- but blew two leads after rallying from an early 3-0 deficit. They are 2-2 in one-run games this season.