Carlos Lee, J.R. Towles, Brett Wallace and starter Bud Norris each drove in a run for the Astros, who have won the first four games of a seven-game road trip.
Norris (3-4) gave up four runs on six hits over six-plus innings to pick up the win. He also struck out six and walked two.
Chase Headley went 1-for-3 with an RBI to extend his hitting streak to 12 games for the Padres, who started an 11-game homestand on Thursday.
Tim Stauffer (1-4), who turned 29 on Thursday, allowed seven runs — five earned — on eight hits over five full frames. He also struck out four and walked two in the loss.