The Astros survived a late comeback bid to push the A's a half-game behind idle Texas for the top spot in the American League West.
Despite owning the worst record in the majors, Houston has defeated Oakland in three of their last four meetings.
Chris Carter singled in a run for Houston in the first and Jose Altuve's base hit drove in two more in the second.
Peacock (5-5) took over with a nine-strikeout performance over seven-plus innings. He left the game after he began the eighth by giving up a triple to Eric Sogard and a double to Stephen Vogt.
Houston used four pitchers to escape the eighth inning with Josh Fields recording the final out. Fields also worked a perfect ninth for his third save.
Sonny Gray (2-3), making his sixth start of the year, took the loss after giving up three runs on seven hits in eight innings.
Pistorius testifies he didn't consciously pull trigger when he shot girlfriend
Pot vending machine to debut