ST. LOUIS (AP) -- About two weeks ago, Mark Sweeney homered and singled off Jason Schmidt in his first start of the season. On Saturday, Sweeney got his second start and thrived in another tough assignment.
"It was like the last time, 'Good luck drawing Schmidt,'" Sweeney said. "But it doesn't really matter when it comes down to that. A lot of it has to do with getting our guys rest."
Adam Eaton pitched into the seventh inning and Trevor Hoffman worked the ninth for the 401st save of his career, one day after becoming the third pitcher in major-league history to reach 400, to help the Padres win their sixth in a row.
"Obviously, he didn't do a lot of celebrating last night," manager Bruce Bochy said. "He came out ready to go."
The Padres' streak includes the first three games of this four-game series, giving them their first series win in St. Louis since 1998. Before the series began, the Padres had lost 19 of 21 at Busch Stadium.
"It's hard to explain some things," Bochy said. "I think, No. 1, it's a credit to how good they are. To beat the Cardinals you have to play great baseball, and I think we've done that."
Eaton survived a shaky start when Larry Walker and Albert Pujols homered on consecutive at-bats with one out in the first for the Cardinals, who have lost three straight for the first time this season.
"Any time you give up a solo home run, it's actually easier on your pitch count," Eaton said. "They're going to get their runs regardless of how you pitch because they're so talented offensively and they're also able to grind some innings out."
After Walker hit his third homer on a 1-1 pitch and Pujols hit his seventh on a 2-2 delivery, Eaton gave up a double to the next hitter, Jim Edmonds, before settling down. Eaton (4-1) worked a season-high 6 2/3 innings, allowing four runs and eight hits while matching his season best with seven strikeouts.
Sweeney, who hit a pinch two-run homer and drove in three runs in an 8-3 victory on Friday, got his second start of the season with first baseman Phil Nevin sidelined by back spasms. His two-run double off Carpenter (4-2) snapped a 3-all tie in the fifth and capped a four-run rally.
Nevin is expected back in the lineup on Sunday and Sweeney doesn't mind.
"I say it all the time -- we're better with him in there," Sweeney said. "There's a reason why I'm pinch-hitting and there's a reason why Nevin is at first base and I'm fine with that.
"I'm just glad I got some much-needed at-bats," he said.
Carpenter was uncharacteristically wild with five walks in seven innings, after entering with seven walks in 39 2/3 innings all season. He gave up five runs and seven hits.
In two previous starts against San Diego, Carpenter had allowed one earned run in 14 innings.
"It's just one of those days when I basically wasn't able to collect myself," Carpenter said. "I was throwing the ball up in the zone all day and wasn't able to get the ball down all day.
"My stuff was there, my mechanics wasn't," he said.
Ramon Hernandez had an RBI double in the fourth for the Padres' first run, and Mark Loretta and Ryan Klesko each drove in a run apiece in the four-run fifth. Walker took a few steps in on Hernandez's liner to right but then had to retreat and missed a leaping catch near the warning track.
Bruce Weber, coach of NCAA basketball runner-up Illinois, was honored in a pregame ceremony. ... The Cardinals are 8-8 at home and 10-3 on the road. They've lost four in a row at home for the first time since May 29-June 1, 2001. ... Hoffman is 8-for-10 in save chances this season, and he's 15-for-16 against the Cardinals for his career.