Royals 8, Cardinals 7: Alex Gordon homered for the second straight game and Eric Hosmer delivered a go-ahead RBI single in the ninth as visiting Kansas City took a 2-0 lead in the four-game, home-and-home series.
Alcides Escobar added two hits and knocked in two runs for the Royals, and starting pitcher James Shields helped himself with two hits and an RBI. Wade Davis (5-1) worked a scoreless eighth for the win and Greg Holland retired the side in order in the ninth for his 16th save.
Kolten Wong hit a grand slam for his first career homer for St. Louis, which has lost three straight. Cardinals starter Jaime Garcia didn't allow a baserunner until Shields' single in the third but was knocked around in the fifth and allowed six runs and eight hits over five frames.
The Cardinals ended a 20-inning scoreless drought and took a 4-0 lead in the second when Wong ripped an 0-1 changeup into the St. Louis bullpen in right field. The Royals put up their own big number in a six-run fifth, as they smacked four straight hits against Garcia including an RBI triple from Escobar, a run-scoring double from Shields and an RBI single from Norichika Aoki, before Gordon blasted a hanging breaking ball to right for a three-run shot and a 6-4 lead.
St. Louis tied it in the bottom of the fifth on Oscar Taveras' sacrifice fly and Jhonny Peralta's RBI double and regained the lead on Peter Bourjos' solo shot in the sixth. Escobar delivered a two-out RBI single in the eighth to pull the Royals even again and Omar Infante doubled and scored the eventual winning run on Hosmer's one-out single in the ninth against Cardinals closer Trevor Rosenthal (0-3).
GAME NOTEBOOK: Shields allowed seven runs (five earned) on nine hits and four walks over 5 1/3 innings. … Cardinals RHP Pat Neshek allowed a run in the eighth, snapping a streak of 22 consecutive scoreless outings dating to April 9. … Royals RHP Wilking Rodriguez made his major-league debut by pitching a perfect seventh inning.