Jack Flaherty tossed seven innings of three-hit ball in yet another dominant performance Tuesday night, and Tommy Edman and Paul Goldschmidt drove in the only runs as St. Louis edged Kansas City 2-0 to open a two-game series between the cross-state rivals.
Flaherty (6-6) struck out seven with a lone walk in his sixth stingy start, though he has just two wins to show for them. He's allowed 20 hits with 50 strikeouts and 0.70 ERA over that span.
Andrew Miller worked around a single in the eighth and retired Alex Gordon in the ninth, and Carlos Martinez got the final two outs, completing the four-hitter while earning his 13th save.
Glenn Sparkman (3-8) did everything the Royals asked over six sharp innings. He allowed two runs, one of them earned, but still hasn't won since a July 16 shutout of the White Sox.
Both Cardinals runs were scored in scrappy fashion. The first came when Dexter Fowler reached on an error in the first, advanced on a groundout and scored on Goldschmidt's sacrifice fly, and the second came on Edman's single in the third - just before he was caught between bases to end the inning.
The Cardinals placed outfielder Jose Martinez on the injured list after he collided with the wall in Pittsburgh on Sunday. Martinez sprained the AC joint in his right shoulder.
St. Louis fired assistant hitting coach Mark Budaska during the day off Monday and promoted Memphis hitting coach Jobel Jimenez to the big league club. ''I ultimately made the decision,'' said Mike Shildt, who cited ''philosophical differences'' in making the move.
The Cardinals send Dakota Hudson (10-6, 4.01 ERA) to the mound to face fellow right-hander Brad Keller (7-12, 4.09) and the Royals as the clubs wrap up their two-game set Wednesday night.