Updated

Nate Schierholtz's RBI single in the ninth inning proved to be the winner as the Chicago Cubs took a 6-5 win over the St. Louis Cardinals in the second of three from Busch Stadium.

Darwin Barney tied the game with a two-run double in the eighth while Welington Castillo hit a solo home run and drove in two for the Cubs, who have won three of their last four.

Carlos Villanueva pitched six innings in the start and gave up four runs on seven hits. Blake Parker (1-1) got the win for tossing a scoreless seventh inning.

Matt Holliday clubbed a pair of homers and finished with four RBI, while Carlos Beltran added a run-scoring double for the Cardinals, who have lost four straight.

Michael Wacha went five innings in the start and was changed with two runs on five hits. Trevor Rosenthal (1-3) was handed the loss for giving up three runs in the eighth.

"I felt good and my body felt good tonight," said Wacha. "But in the later inning my arm started dragging a bit and that's when I started to give up those walks."

Rosenthal came on to pitch with a two-run lead, but gave up consecutive walks to Castillo and Schierholtz to start the inning. After the next two batters struck out, Barney roped a double to center to score both runners. Dioner Navarro followed with a pinch-hit double for a 5-4 advantage.

"He had been getting pitches up the whole inning," said Barney. "I just kept telling myself to look for something down or near the middle. I got one of those and I was able to get a good swing on it."

After Pedro Strop set the Cardinals down in order in the eighth, Schierholtz added some insurance as his single to right scored Junior Lake, who had led off with a double.

The run proved fortunate as Holliday hit his second homer of the game with one out in the ninth, but Kevin Gregg retired the next two batters on groundouts for his 25th save of the season.

Chicago got on the board in the second as Castillo led off the frame with a homer just over the wall in left field and into the Cubs' bullpen for a 1-0 lead.

St. Louis had just one baserunner through the first three innings, but Matt Carpenter led off the fourth with a single and Beltran followed suit. Two batters later, Holliday crushed a pitch over the left field fence for a 3-1 Cardinals lead.

The Cubs got on back in the fifth as consecutive one-out singles from Lake and Anthony Rizzo saw men on the corners and Castillo's sac fly made it a 3-2 game.

The Cardinals, though, got the run back in the sixth on back-to-back doubles from Carpenter and Beltran.

Game Notes

The Cubs came into the game 7-for-36 with runners in scoring position in the first four games of this six-game road trip, and went 3-for-13 on Saturday, stranding 11 runners ... The Cardinals left just one man on base ... The Cubs on Saturday selected the contract of outfielder Darnell McDonald from Triple-A Iowa and transferred outfielder Thomas Neal to the 60-day disabled list ... Each team has won six games in the season series.