Carlos Lee's 3-run HR rallies Astros by Diamondbacks

PHOENIX -- Carlos Lee has been an RBI machine for the Houston Astros since the end of July.

He tacked on four more Saturday night.

Lee hit a three-run homer in Houston's four-run eighth inning and also singled in a run in the first, leading the Astros to a 6-5 victory over the Arizona Diamondbacks.

Angel Sanchez tripled and scored on Aaron Heilman's wild pitch to get the Astros within two in the eighth but it looked as if the rally would fizzle when Michael Bourn struck out for the second out.

Jeff Keppinger kept the inning alive with a base hit and moved to third on Hunter Pence's double before Lee drove Heilman's next pitch out to left. The burly slugger's 20th homer put him at 82 RBIs for the season, including 34 in his last 34 games.

"That was a good pitch by Heilman, I have to say that. It was down and in and I just got to it," Lee said. "I feel good at the plate, I would say, the last two months."

Mark Melancon (2-0) pitched a scoreless inning to get the win and former Diamondbacks reliever Brandon Lyon worked the ninth for his 12th save in 13 chances this season.

"Our bullpen was absolutely amazing again," Astros manager Brad Mills said.

Heilman (5-6) was charged with four runs and four hits, wasting a strong outing by Joe Saunders.

"I made a couple of good pitches in that inning, made a couple of bad ones," Heilman said. "They kind of all got hit."

Mike Hampton made his Arizona debut in the ninth, getting Bourn to ground out to shortstop for the last out of the inning. The Diamondbacks promoted the veteran left-hander from Triple-A Reno on Friday.

Ryan Roberts hit a three-run drive off Bud Norris in the fifth to give the Diamondbacks a 5-1 lead. The two-out shot to left was his first of the season, coming in his 20th game.

"We had many chances to put these guys away," Diamondbacks manager Kirk Gibson said. "They hung around, and that's what happens in baseball."

Saunders allowed two runs and three hits in seven innings. He also singled in Miguel Montero in the second for his first career hit and added another single in the sixth before swiping second for his first steal. It was Arizona's first theft by a pitcher since Shawn Estes on May 27, 2005.

Adam LaRoche hit a run-scoring single in the first for Arizona, giving him 90 RBIs on the season -- matching a career best.

The Diamondbacks had won four straight.

Game notes
Diamondbacks OF Justin Upton missed his third straight game because of left shoulder irritation. Gibson said he hopes Upton can play Sunday in the series finale. Upton said he still felt some discomfort in his swing, which was how he injured the shoulder during a game on Aug. 30. ... Police said a small group of about 15 to 20 people held signs and chanted outside Chase Field in protest of the state's controversial immigration law. The protest coincided with the team's Hispanic Heritage Day promotion. The club reissued a statement acknowledging that Diamondbacks co-owner Ken Kendrick has donated to Republican political candidates in the past, but Kendrick personally opposes the law. The statement also said the Diamondbacks "have never supported SB 1070" nor ever taken political stances.