KANSAS CITY, Mo. -- Matt Carpenter homered, doubled and drove in a pair of runs and Michael Wacha pitched six useful innings as the St. Louis Cardinals held off the Kansas City Royals 8-4 on Tuesday night.
The Royals loaded the bases with one out in the ninth off Seung Hawn Oh, but came away empty. Pinch hitter Alex Gordon popped up foul to third baseman Jhonny Peralta, while Eric Hosmer grounded out to end the game.
Carpenter, who leads the National League in on-base-plus-slugging percentage and with 43 extra-base hits, homered to lead off a two-run sixth and contributed a RBI-double in a three-run sixth.
Wacha (4-7), who snapped a personal career-worst seven-game losing streak in his previous start, gave up four runs, one unearned, on nine hits and a walk in six innings.
Yordano Ventura (6-5) was removed after 5 1/3 innings and 98 pitches allowing seven Cardinals runs on seven hits, including a home run and two doubles, with three walks and a hit batter.
The Cardinals upped their lead to 8-2 in the sixth, which Ventura failed to last and was replaced by left-hander Brian Flynn. Carpenter had a run-producing double in the inning. One run was unearned after an Eric Hosmer fielding error. Carpenter scored on a Matt Holliday ground out.
The Royals responded with two runs in their half of the sixth. Cheslor Cuthbert's double scored Kendrys Morales and Paulo Orlando, who initiated the inning with singles.
Royals center fielder Lorenzo Cain appeared to pull a muscle in his leg in the seventh while running to first. Jarrod Dyson replaced him in the eighth.
Ventura, who was making his first start since June 17 after serving an eight-game suspension for a bench clearing incident June 7 in Baltimore, worked an impeccable first inning, striking out the first two Cardinals.
Ventura, however, gave up three runs in a 29-pitch second, allowing three hits and walking two. The inning began with Stephen Piscotty's double and Matt Adams' single. Peralta walked to load the bases with none out.
Piscotty scored on Yadier Molina fielder's choice grounder with Adams out at third. Kolten Wong's single scored Peralta, while Greg Garcia's ground out knocked in Molina.
The Royals answered with two runs in the bottom of the inning and were aided by a fielding error on right fielder Piscotty. Eric Hosmer led off the second with a double. Hosmer stopped at third on Kendrys Morales' fly ball single to shallow right, his fifth straight hit. When the ball rolled past Piscotty, Morales took second.
Hosmer scored on Paulo Orlando's ground out and Christian Colon's two-out single brought home Morales.
The Royals loaded the bases with one out in the third, but could not score. Alcides Escobar started it with a one-out infield single and moved to second on Lorenzo Cain's single to left. Hosmer smoked a Wacha pitch to right field, which was hit too hard for third base coach Mike Jirschele to wave home Escobar.
Morales hit a hard grounder to first baseman Adams, who threw out Escobar at the plate. Orlando flied out to Piscotty to end the inning.
The Cardinals hiked their lead to 5-2 in the fifth, which Matt Carpenter led off by planting an 0-1 Ventura pitch over the right-center wall. It was the 16th consecutive game Royals pitchers had allowed a home run.
Brandon Moss followed with a double, went to third on a ground out and scored on Adam's sacrifice fly.
Before Colon's run-producing single in the second inning, he drilled a hot shot into the Cardinals dugout that struck Aledmys Diaz in the side. Diaz, ironically, was sitting out the game after fouling a pitch off near his eye Monday. Diaz was led back to the trainer's room, but the Cardinals reported he was fine.
NOTES: SS Aledmys Diaz did not play because of swelling around his right eye after taking a foul ball in the ninth inning Monday off his face. He passed the concussion protocol tests and there was no fracture, but will miss a few games until the swelling subsides. ... LF Alex Gordon and C Salvador Perez were not in the Royals lineup, but given some rest. Manager Ned Yost noted Gordon had played 10 straight games, including six on a minor league rehab, after sitting a month with a fractured right wrist. ... C Brayan Pena, who missed the first 76 Cardinals games after having left knee surgery, was activated. C Eric Fryer, who hit .368 in 38 at-bats, was designated for assignment. ... Royals prospects 3B Hunter Dozier and OF Jorge Bonifacio have been selected to the All-Star Futures Game, July 10, in San Diego. RHP Alex Reyes and C Carson Kelly will represent the Cardinals. ... Royals RHP Edinson Volquez and Cardinals RHP Carlos Martinez are the Wednesday probables as this four-game series continues in St. Louis.