The Houston Astros got another good outing from their starting pitcher, and their bullpen was just fine for a change. J.D. Martinez hit a two-run homer off James Shields, Jordan Lyles pitched six effective innings and the Astros beat the Kansas City Royals 3-1 on Wednesday night.