ST. LOUIS (AP) _ Mike Cameron's two-run double capped San Diego's four-run seventh inning against Cardinals ace Chris Carpenter, and free-falling St. Louis saw its lead in the NL Central shrink to 1 1/2 games following the Padres' 7-5 victory Tuesday night.
San Diego's magic number to clinch the NL West is down to four after its sixth straight win.
Ronnie Belliard homered twice and had three RBIs for the Cardinals, who also got a two-run single from Jim Edmonds in his first start in a month after being sidelined with post-concussion syndrome. It didn't prevent them from losing their seventh in a row because Carpenter (15-8) failed to protect a three-run lead.
St. Louis appeared to have all but clinched the division title with a seven-game lead and 13 games to go. But the Cardinals' skid has coincided with a winning streak for the Houston Astros, who beat Pittsburgh 7-4 Tuesday night for their seventh victory in a row.
Woody Williams (11-5) won his fourth straight game with six solid innings for the Padres, who have a two-game lead over the Dodgers with five games remaining. Cameron had two hits and three RBIs and Josh Bard, a late substitution at catcher when Mike Piazza decided he wanted a day off Tuesday instead of Wednesday, was 3-for-4 with a two-run double in the seventh.
Trevor Hoffman got the last three outs for his major league-leading 44th save in 49 chances and the 480th of his career. He got the day off Monday after making six appearances in eight games and breaking Lee Smith's major league career save record on Sunday. Hoffman struck out Belliard with a runner on second for the final out.
Carpenter, the NL Cy Young winner last year and among the front-runners again this season, struggled in losing his second straight start. He labored through 120 pitches in seven innings, allowing six runs on 12 hits.
He had been 5-0 in a span of eight starts before faltering in the last two in which he's given up 12 earned runs in 15 innings to hike his ERA to 3.09. He had been 8-3 with a major league-leading 1.46 ERA at home before getting smacked around by the Padres, who have won nine of 11 and at 17-7 have the majors' best winning percentage in September.
Carpenter got pinch-hitter Ryan Klesko on a lineout to start the seventh before the next four batters reached safely, with Bard's two-run double cutting the gap to 5-4. Russell Branyan took a called third strike before Cameron sliced a double down the right-field line for a 6-5 lead.
Williams shook off a pregame fall in the clubhouse about an hour before the game when his spikes gave way on a slick surface and allowed five runs, three earned, in six innings. He gave up only two runs in 17 2-3 innings in his three previous appearances.
Belliard, acquired from the Indians on July 30, has four of his 13 homers since joining the Cardinals. He hit the first pitch from Williams in each at-bat, connecting with the bases empty in the second. His two-run shot in the fourth reached the third of four decks in left field and put St. Louis ahead 3-2.
Errors on consecutive plays helped the Cardinals score a pair of unearned runs and take a 5-2 lead in the fifth.
Bard's one-hop throw to second on Juan Encarnacion's tapper in front of the plate handcuffed shortstop Geoff Blum to put runners on first and second with one out in the fifth. Third baseman Russell Branyan couldn't find the handle on Scott Rolen's grounder near the bag in time to load the bases, and Edmonds followed with a two-run single that made it 5-2.
Adrian Gonzalez added an RBI single in the eighth off Adam Wainwright to put the Padres ahead 7-5.
Notes: Belliard is 7-for-15 with three homers and six RBIs against Williams. ... Williams allowed a total of one homer in his three previous starts. ... The Padres are 4-1 against the Cardinals, who are 22-11 overall against the West.