Dakota Hudson went the first 6 2/3 innings for the Cardinals but was pulled after throwing 111 pitches Monday night. He struck out seven and walked four - including his final batter, Eric Thames.
Giovanny Gallegos entered and retired Ben Gamel on a grounder to end the inning.
Orlando Arcia reached on an error to begin the eighth before Gallegos got two outs. Grandal then hooked a 1-2 slider just inside the right field line and the ball bounced into the stands for a ground-rule double.
Andrew Miller relieved and preserved a 3-0 lead for St. Louis when Mike Moustakas grounded out with the bases loaded.
The 24-year-old Hudson has completed seven innings twice in his two-year major league career.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP_Sports
Copyright 2019 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.