Keller threw seven-plus innings of two-hit baseball, Jorge Soler hit a three-run homer and the Kansas City Royals beat St. Louis 8-2 Wednesday in the first game of a doubleheader. The Cardinals have lost 10 of 12.
Severe storms around St. Louis forced Tuesday night's game to be postponed and created the day-night twinbill.
Keller (3-5) ended his six-start winless streak. He worked around leadoff walks in the first, second and fourth innings and had retired 12 of 13 batters before Matt Carpenter walked and Paul Goldschmidt singled to start the eighth, ending Keller's day.
"Definitely felt a lot better," said Keller, who had given up 17 earned runs in his previous five starts covering 27 1/3 innings. "More comfortable in my delivery, especially in innings three to seven. I was able to get ahead of those guys and just go after them."
After starting the season with a 20-10 record, St. Louis fell back to .500.
"We got to look at it," Cardinals manager Mike Shildt said. "Clearly, I don't want to be knee-jerk right now, but we can't continue, just in total, something's got to change."
"I can't alibi it. Got reasons, got sound reason, but reality is we're not getting it done right now. Ultimately, it's a group that we'll all take ownership, but I've got to take ownership, too. I've got to figure out something and I've got to lead better, evidently," he said.
Keller matched his longest outing of the season. He struck out three, walked four and hit two batters.
Control was Keller's biggest issue during his struggles as he walked 20 batters in his previous five starts. Though he gave up four free passes to St. Louis, the lack of contact helped him.
"Didn't allow any of that to kind of fester into trouble for him, just came back and made good pitches after that," Royals manager Ned Yost said. "Really did a good job of managing his pitch count. Really had good stuff, had the good two-seamer, had everything working for him today."
Soler's drive into the left field seats off Michael Wacha (3-2) capped a six-run third and made it 7-0.
"Any time you get runs support like that you basically just go out there and say, `here it is,' and just try to get as deep into the game as possible," Keller said.
Wacha has allowed 18 earned runs and 30 hits in 25 1/3 innings in five starts since returning from the injured list with left knee patellar tendinitis.
"The way I've been pitching, it's unacceptable," Wacha said. "It's tough. You've got to be able to pitch well to stay in this league and right now I have not been pitching well. I have to do a better job."
Whit Merrifield had two hits, drove in a run and scored once. Adalberto Mondesi had two hits, drove in two and scored. Nicky Lopez reached three times and scored twice and Hunter Dozier hit a pair of sacrifice flies.
Royals: McCarthy, a right-hander, was recalled from Triple-A Omaha after RHP Heath Fillmyer was optioned on Sunday. RHP Jake Newberry will be the 26th man for the second game.
Cardinals: RHP Luke Gregerson cleared waivers and was given his unconditional release, making him a free agent. OF Lane Thomas will be the 26th man for the second game.
RHP Homer Bailey (4-4, 5.36 ERA) will get the start for the Royals in the nightcap against RHP Adam Wainwright (3-4, 4.75 ERA). Bailey is 5-16 with a 5.56 ERA against St. Louis. Wainwright will be facing Kansas City for the first time since 2016.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports