ST. LOUIS (AP) — Tyler O’Neill had a career-high four hits, including a solo home run, and Adam Wainwright threw seven effective innings and the St. Louis Cardinals beat the Kansas City Royals 4-2 on Friday night.

Paul Goldschmidt also homered to help St. Louis snap a three-game losing streak.

Ryan O’Hearn had a run-scoring triple for the Royals. They were coming off consecutive victories over AL Central-leading Chicago.

O’Neill finished a triple shy of the cycle. He hit his 18th homer of the season leading off the fourth inning.

The red-hot O’Neill has reached base safely in 14 of his last 18 plate appearances.

“He’s definitely in a good place,” St. Louis manager Mike Shildt said. “A good stroke. Not trying to do too much.”


O’Neill badly wanted to hit his first career triple to record the cycle when he led off the eighth inning. Instead, he ripped a single to cap off a career-best performance.

“I didn’t hit it in the right spot,” O’Neill said. “I’ll take four hits. That’s OK. Singles are good, doubles are good, homers are good. I can’t complain.”

Wainwright (10-6) allowed two runs on seven hits. He struck out six and walked two. Wainwright improved to 87-45 coming off a Cardinals loss. He posted his 11th 10-win season becoming only the third pitcher in franchise history to do so.

“You’re talking rarified air,” Shildt said. “I have so much respect for him.”

Wainwright did not allow a run on three hits over his first five innings.

Alex Reyes picked up his 25th save in 26 chances. T.J. McFarland threw a scoreless eighth.


Goldschmidt hit his 18th homer of the season off Mike Minor (8-10) in the first inning. Minor gave up four runs on seven hits over five innings. He struck out seven and walked two.

“I thought his stuff was pretty good,” Kansas City manager Mike Matheny said. “When he did get into a compromising count, he made the most of it.”

The Royals were without All-Star catcher Salvador Perez, who missed the contest with the flu. Perez, who had played in all 107 games, remained at the team hotel. Matheny said the illness is not COVID-19 related.

Goldschmidt added a run-scoring hit in the fifth to make it 4-0.

Kansas City bunched together four successive hits off Wainwright in the sixth including a run-scoring single by Hunter Dozier that closed the deficit to 4-2.

Paul DeJong broke an 0-for-18 slump with a run-scoring hit in the second.


Kansas City, which had won 10 of its previous 15, fell to 8-4 in interleague games.


Kansas City INF Whit Merrifield played in his 415th successive game on Friday, which is the longest active streak in the majors. He still needs 2,217 consecutive starts to catch Cal Ripken Jr.’s record total of 2,632. Merrifield would roughly have to play 14 more seasons without missing a start to threaten the record.


Tampa Bay Lightning LW Pat Maroon, who grew up in the St. Louis suburb of Oakville, threw out the first pitch prior to Friday’s game. Maroon has been a key member of three successive Stanley Cup winning teams, including the last two in Tampa. He was a member of the St. Louis team that won the first cup in franchise history in 2019.


Royals: OF Andrew Benintendi did not start for the third game in a row after leaving Tuesday’s contest against the White Sox with a left shoulder strain. He struck out as a pinch hitter in the seventh.


LHP Kwang Hyun Kim (6-6, 3.31) will face Kansas City RHP Brad Keller (7-10, 5.64) in the second game of the three-game series on Saturday night. Kim gave up a career-high four home runs in 2 2-3 innings of a 7-2 loss to Cleveland on Wednesday. Keller is 1-2 with a 4.74 ERA in five games against St. Louis.