HOUSTON -- Woody Williams would not mind pitching more at Minute Maid Park.
Williams (5-5) allowed two runs and five hits in five innings, improving to 8-3 at Minute Maid Park.
"It's nothing to take away from this (Astros) team," said Williams, who lives in nearby Fresno and is 10-4 all-time vs. Houston. "But I just feel comfortable here. I like this park."
Williams, who spent 34 days on the disabled list with a strained left oblique, won his third straight decision despite throwing 102 pitches.
"I just struggled a lot to get the ball in the strike zone," Williams said. "They just wore me down. I was pretty worn out after the fifth."
Manager Bruce Bochy noticed.
"He was up there quite a bit with his number of pitches for five innings," Bochy said. "He threw a good game for us.
"We needed this game in the worst way after losing three straight and we had to have a good effort from our starter and score some runs early."
Ramon Hernandez capped a six-run fifth inning with a two-run single in his first game back from the disabled list. Hernandez, who had been out with a sprained left wrist, played for the first time since June 18.
"It was great to have him back," Bochy said. "He's vital for us. The timing couldn't have been better for him to come back."
Trevor Hoffman pitched the ninth for his 24th save in 26 chances. San Diego, which leads the NL West, has still dropped nine of its last 15.
Morgan Ensberg and Craig Biggio homered for Houston, which had its four-game winning streak snapped with just its second loss in nine games.
Wandy Rodriguez (4-4) went 4 1/3 innings and allowed seven runs on five hits and three walks. He struck out five.
Rodriguez had retired 12 in a row before Xavier Nady led off the fifth with a homer to give San Diego a 2-1 lead. Back-to-back RBI singles by Williams and Dave Roberts made it 4-1.
Rodriguez left with the bases loaded and one out and was replaced by Russ Springer, who threw a wild pitch to allow Williams to score. Hernandez followed with a two-run single for a 7-1 lead.
"(Rodriguez) gave up the home run, then the next thing we know, the bases are loaded," manager Phil Garner said. "The inning just snowballed and we didn't get out of it."
Rodriguez could never recover after allowing Nady's homer.
"Of course, it affected me," Rodriguez said. "I was pitching well. Then the guy went out and got a fastball.
"In the fifth I went with more fastballs and it didn't work. You can't throw it straight in the big leagues."
The Padres took a 1-0 lead in the first when Eric Young lined a double down the first-base line past a diving Lance Berkman. Rodriguez retired his next 12 batters and ended the third by catching a hard line drive by Young right at his feet.
Williams retired eight in a row before Biggio hit his 13th homer on the first pitch of the fourth inning for the Astros' first hit, tying it at 1.
Raul Chavez hit his second home run of the year in the fifth for Houston's second run. With two outs in the sixth, reliever Rudy Seanez issued consecutive bases-loaded walks to pinch-hitter Orlando Palmeiro and Willy Taveras, cutting the Padres' lead to 7-4.
Ensberg hit his 23rd homer in the seventh.
Former Astros pitcher Doug Drabek was on the field before the game because his son, Kyle, was being honored as a member of the Aflac High School All-America Baseball Classic team. Kyle is a pitcher/shortstop at The Woodlands. ... Chris Burke was 0-for-4, ending his career-high hitting streak at 11 games. ... San Diego hasn't been swept in a four-game series in Houston since April 20-23, 1973. ... Giles had three walks to move back into first in the NL in walks with 66.