The Astros won for the fourth time in five games, jumping on the Cardinals for three runs in the first inning and then riding the solid performance from Myers.
Myers (6-6) struck out five and became the only starting pitcher in the majors this season to have gone six innings or more in each of his 18 starts.
Houston sent eight men to the plate in the opening inning against Jeff Suppan, getting a two-run single from Pedro Feliz and an RBI base hit from Humberto Quintero.
Keppinger added a solo homer in the fifth. Matt Lindstrom relieved Myers in the ninth and issued two walks before collecting his 21st save.
Suppan (0-5) suffered the loss in his 100th start for the Cardinals. He allowed all four runs on seven hits in 4 2/3. St. Louis lost for the fourth time in five games.
Copyright 2010 United Press International, Inc. (UPI).