Hill first went deep in the fourth inning, triggering a five-run uprising that saw the D-backs bang out five hits while sending 10 men to the plate.
The Arizona second baseman added another shot in the eighth as the Diamondbacks completed a three-game sweep of the Astros and won for the fifth time in seven games overall.
Miguel Montero also knocked in a pair for the D-backs.
Ian Kennedy (11-10) earned the victory with six innings of one-run ball. He allowed five hits and walked five while striking out seven.
Houston starter Armando Galarraga (0-4) was tagged for five runs on six hits in a 3 2/3-inning effort.
Jason Castro got the only RBI for the woeful Astros, who lost for the 40th time in 47 games.