PHOENIX -- Houston right-hander Wandy Rodriguez's breaking ball was less than perfect but more than good enough Monday night.
Jimmy Paredes had a two-run single and Rodriguez drove in his first run of the season for the Astros, who snapped a three-game losing streak. Rodriguez (7-9) walked four and struck out five.
"I was trying to make quality pitches," Rodriguez said. "My breaking balls, I threw good ones then I threw bad ones. I threw more bad tonight. Locating my breaking ball, that's my key."
|More on Astros at D-Backs|
Rodriguez pitched out of a bases-loaded jam in the first and left two more runners stranded in the second. Catcher Carlos Corporan said he talked to Rodriguez about raising his arm angle between innings and, with that little tweak, Rodriguez went on to retire 11 of the last 12 batters he faced.
"You could just see in his body language out there that he couldn't get the pitches right where he wanted to," said Astros manager Brad Mills. "He worked out of a lot of jams while he was finding his rhythm."
Henry Blanco homered in the seventh for the Diamondbacks, who have dropped four of five.
"You can't take these guys lightly," said Diamondbacks manager Kirk Gibson. "They have been swinging the bats like this. They are very aggressive and they find plenty of holes."
Martinez's three-run homer off Arizona starter Daniel Hudson (11-8) gave Houston a 3-0 lead four batters into the game. Corporan added an RBI double later in the inning and Rodriguez hit a run-scoring single to left to make it 5-0.
The Astros added two more runs in the second on an RBI double by Matt Downs and a run-scoring infield single from Clint Barmes.
"Everything's fun when we win," Corporan said. "We took advantage of that guy over there. He left a couple of pitches up in the zone and we swung the bats well."
Hudson allowed seven runs -- four earned -- on a career-high 11 hits over a career-low three innings. He struck out only one, matching a season low.
"They don't have a ton of experience over there but they did a good job of battling it, battling me and making me throw pitches over the plate," Hudson said.
In three career starts against the Astros, Hudson has allowed 11 earned runs on 26 hits in 16 innings for a 6.19 ERA. He has a 3.10 ERA against everyone else.
"I don't really know how to explain it," Hudson said. "I have never really pitched well against them. That team has my number I guess."
Paredes added his two-run single in the sixth off Zach Duke to put Houston in front 9-0, matching the number of runs the Astros had scored in their past three games combined.
Blanco homered off Jeff Fulcchino with one out in the seventh to make it 9-1.
Hudson's previous shortest start was a four-inning stint against Milwaukee on July 4 in an eventual 8-6 Diamondbacks win. ... Three of Houston's first four hitters -- J.B. Shuck, Jose Altuve and Martinez -- entered the game with fewer than 100 career at-bats combined. SS Jimmy Paredes, the Astros' sixth-place hitter, came in with 18 career at-bats. ... Shuck was making his second career start. ... Blanco's home run was his first since May 16. ... Arizona LHP Joe Saunders' rough start Saturday got a little better on Monday. SS Willie Bloomquist belatedly was charged an error on a play originally ruled a fielder's choice, meaning one of the four runs Saunders allowed now is unearned. ... RHP Jason Marquis makes his second start for the Diamondbacks on Tuesday. In his first start since being acquired from Washington on July 30, Marquis allowed eight runs -- 7 earned -- on 10 hits and a walk over four innings against San Francisco. ... Astros RHP Jordan Lyles will seek his second career win on Tuesday. The 20-year-old rookie, the youngest player in the majors, earned his first win in his 13th career start on August 3 against Cincinnati.