PHOENIX — Working the black worked out nicely for Bronson Arroyo.

Enticing Houston’s aggressive hitters by throwing to the corners and out of the strike zone, Arroyo pitched seven strong innings Tuesday to lift the Diamondbacks to a 4-1 victory over the Astros.

“These guys are really aggressive and young, so I don’t think they’d change their approach that much,” Arroyo said. “It allowed me to stay on the outer half and get a lot of ground balls.”

Arroyo (6-4) matched Houston starter Brad Peacock through seven innings before the Diamondbacks scored two runs off Josh Fields (1-4) in the seventh.

Hill hit a sacrifice fly in the inning, and Cody Ross knocked in Ender Inciarte with a double to right-center after an error by Astros shortstop Jonathan Villar. Hill added a run-scoring double in the eighth inning to put Arizona up 4-1.

Paul Goldschmidt also homered, and Addison Reed worked a perfect ninth for his 16th save. Arizona has won six of eight after its latest rally-from-a-slow-start game.

“We’ve been pushing on, guys staying with their approach,” Diamondbacks manager Kirk Gibson said. “A lot of talking on the bench, and we’ve made some adjustments in-game when we’ve had to.”

The Astros have been superb on the road over the past month, winning eight of their previous nine, including the series opener against Arizona on Monday night.

Houston had no answer for Arroyo, though, managing seven hits — three of those by Jon Singleton — while going 1 for 6 with runners in scoring position.

“He was throwing the ball good,” Peacock said. “We’ve been doing a great job jumping on people, but he’s one of the best starters in the game, and we just couldn’t get to him today.”

A back injury in spring training limited Arroyo’s effectiveness early in the season.

“He’s hitting his stride here, got on a pretty good roll,” Gibson said. “He knows how to get guys out.”