SAN DIEGO -- At 41, Greg Maddux can still beat teams with his arm, his bat and his glove.
The only thing that wasn't pretty about his afternoon's work was that awkward slide into third base.
Maddux held Houston to two hits in six innings, had two hits himself and fielded his position like the Gold Glover he is. In avoiding a three-game sweep, the two-time defending NL West champion Padres pulled within four games of the division-leading Arizona Diamondbacks and took a one-game lead over Philadelphia in the wild-card race.
After taking Monday off, the Padres open a road trip with three games against the NL East-leading New York Mets starting Tuesday night. They then play three against the Phillies, who embarrassed the Padres in taking three of four at Petco Park in mid-July.
"Athlete," manager Bud Black said in describing Maddux's play. "The best-fielding pitcher I've ever seen, by far. His anticipation on the mound is off the charts. Saves himself tons of hits and therefore many runs, probably, over his career.
"His all-around game is what makes him one of the best players of all time. And, he can pitch," Black said.
It was the first time this season that Maddux (9-9) won consecutive starts. He earned the 342nd win of his brilliant career, tying Tim Keefe for ninth on the all-time list.
The Padres won for just the 17th time in 36 games since the All-Star break, when they led the division by one game over the Los Angeles Dodgers.
San Diego's Adrian Gonzalez hit a solo homer off Matt Albers (3-6), and Brian Giles had three hits and an RBI. Trevor Hoffman gave up Mike Lamb's RBI single in the ninth before striking out Eric Bruntlett with two runners on for his 31st save in 34 chances, and the 513th save of his career.
Otherwise, the focus was on Maddux -- especially the scary moment in the third when he went from first to third on Giles' single down the left-field line. Maddux slid in ahead of the throw and hit the bag awkwardly, twisting his body around. After being checked by a team trainer and Black, Maddux stayed in the game. After being stranded, he threw three more scoreless innings.
"It probably helped us a little bit because it gave him time to catch his breath," Black said. "Here again, he's a ballplayer. Went first-to-third on a hit to left field. Good baseball."
Maddux said he jammed his left knee a little bit.
"No big deal," he said. "Maybe I slid late. That's kind of what it was. If I was an everyday player I'd play tomorrow."
After allowing Lance Berkman's solo homer to left with two outs in the first, Maddux retired 12 straight until allowing a single to Bruntlett with two outs in the fifth. Bruntlett stole second and was stranded. Maddux allowed one run, struck out four and walked none.
The right-hander had his typical good location.
"When I missed, I missed by like a foot or two and not just like by six inches. That's a nice, good thing. If you're going to miss, miss down and away or up and in and not down the middle," he said.
"How many times have we seen that?" Berkman said. "The guy still knows how to pitch. He showed that today."
Maddux singled to center in the third and beat out an infield single to shortstop in the fifth before being forced.
Berkman's homer, his 24th, was his third of the series. He homered twice on Friday night, providing all the Astros' runs in a 3-1 win.
San Diego's anemic offense came alive in the fourth to take a 2-1 lead. Gonzalez singled and Khalil Greene doubled opening the inning, followed by Rob Mackowiak's RBI groundout and Terrmel Sledge's sacrifice fly.
Gonzalez homered to right leading off the sixth, his 20th. Albers got two outs, then loaded the bases by walking two and hitting Kevin Kouzmanoff with a pitch. He made way for Mark S. McLemore, who promptly walked pinch-hitter Mike Cameron to give San Diego a 4-1 lead. Giles followed with an RBI single to left. Josh Bard was thrown out trying to score from second, ending the inning.
"I just couldn't quite get out of it," Albers said. "It's a little disappointing that I wasn't able to close out that inning. We would have been right there had I finished off that inning."
Albers allowed five runs and seven hits in 5 2/3 innings, struck out three and walked three.
Houston's Jason Lane hit an RBI single in the seventh.
- Astros ace Roy Oswalt said it's possible he'll miss his next scheduled start because of a strained left oblique sustained in Saturday night's game. Asked how it felt Sunday, Oswalt said "not great." Oswalt said he'll know more after throwing on flat ground, probably on Monday after the team returns to Houston.
- Astros slugger Carlos Lee (strained right hip flexor) missed his first start of the season. He pinch-hit in the ninth and popped out.
- Padres LF Milton Bradley, out of the lineup since injuring his right hamstring on Aug. 3, will start Tuesday at New York. Bradley grounded out as a pinch-hitter in the eighth, just his second appearance since Aug. 3.