SAN DIEGO -- Brian Moehler tried to remember the last time he was at the plate and three runs scored.
"Not very often, I guess," the Houston Astros right-hander said.
Moehler pitched six strong innings and hit a grounder that led to the Astros completing a six-run inning in a 7-1 win over the San Diego Padres on Wednesday night.
Moehler and two relievers held San Diego to five hits. San Diego has lost 11 of its last 16 home games, and seven of eight against the Astros dating to last season.
Moehler (5-4) struck out eight and held San Diego to four hits in winning his third consecutive decision. His only mistake was allowing Eliezer Alfonzo's homer with two outs in the second.
Walter Silva retired the first 10 Astros batters before the game got out of hand in the fourth. Houston scored three runs on five singles and a walk before three more scored on third baseman Chase Headley's two-base throwing error on Moehler's grounder with two outs.
Silva retired Michael Bourn on a soft liner to first to open the fourth, then allowed singles to Miguel Tejada, Lance Berkman, Carlos Lee and Geoff Blum that gave the Astros a 2-1 lead.
After Ivan Rodriguez flied out, Darin Erstad walked to load the bases and Kaz Matsui singled in a run. Moehler hit a grounder to Headley, who hesitated and stutter-stepped. His throw to first skipped past Adrian Gonzalez, clearing the bases and allowing Moehler to take second.
"When I first fielded the ball, my first instinct was stop and go to the bag," Headley said. "I turned around and looked and I didn't think I had enough time. I rushed the throw over there trying to finish the play and made a bad throw.
"The right play would have been to just keep coming through and make the throw to first."
It was Headley's third start at third this year. He's made 58 in left field.
"I saw him field the ball, it was in between hops, and I saw him like take a step to third, and at that point I kind of took off running," Moehler said. "I didn't know what was going to happen. I saw the throw coming into first, and it was going to be kind of bang-bang there."
San Diego was two-hit by Roy Oswalt on Monday night in a 3-1 Astros win.
Moehler walked four. After Alfonzo's first homer of the season, only four Padres got as far as second base.
"I'm more upset with the walks than anything else," Moehler said. "I don't like throwing a lot of pitches out. Too many walks, and strikeouts just come with the territory. To me, a couple of strikeouts and maybe no walks would have been better."
Moehler "wasn't real sharp but he managed to hold on," manager Cecil Cooper said. "Keep your team in the game and give yourself a chance. He did that again tonight. The starters continue to do that. If we can put some runs up, we've had a chance to win. Brian did a good job of kind of keeping them at bay."
Silva (0-2) had his second short outing in a row. He lasted only four innings, allowing five hits and six runs, three earned. On Friday, he went only 2 1/3 innings in a 12-2 loss at Texas, allowing seven hits and nine runs, eight earned.
Tony Gwynn Jr. had two hits for San Diego. ... The Padres say Friday night's game against Manny Ramirez and the Los Angeles Dodgers is a sellout. That's the night Ramirez will return from his 50-game suspension for violating baseball's drug policy. ... Gonzalez was back in the starting lineup after straining his right knee while sliding into third base in the fourth inning on Tuesday night and coming out as a precaution. He said he convinced manager Bud Black that he was OK. ... Hall of Fame QB Troy Aikman is scheduled to throw out the ceremonial first pitch prior to Thursday afternoon's game. The former Dallas Cowboys star is among the partnership led by Jeff Moorad that purchased about 35 percent of the Padres from John Moores earlier this year and has up to five years to buy the rest.