SAN DIEGO -- The San Diego Padres are getting things right these days.
"Finally, we're able to get contributions from a lot of different people," Piazza said. "We're doing the things we need to do to win."
San Diego has won four straight and six of seven to close within one game of division-leading Los Angeles. San Diego opened a two-game lead in the wild-card race over Philadelphia, which was rained out. Florida dropped three games back.
With his 417th career homer, Piazza reached the 20-home run mark for the 12th time in 15 major league seasons.
Meredith (4-1) pitched two scoreless innings and is one-third of an inning short of San Diego's club relief record, set by Mark Davis in 1988. Meredith, a sidearming righty, has not surrendered a run in his last 24 appearances.
"He has done an outstanding job," Padres manager Bruce Bochy said. "He's pitching his heart out. He's loaded with confidence."
Manny Alexander had two RBI for San Diego, including a run-scoring triple in the sixth that put the Padres ahead 4-3. Alexander, who also had a sacrifice fly, then scored on a single by Adrian Gonzalez.
"I fell behind every batter," Rockies starter Jeff Francis said of the sixth. "I had to come to them at some point and make a pitch right over the middle, right in the wheelhouse, and (Alexander) took advantage of it."
Pinch-hitter Vinny Castilla, who began the season as the Padres' third baseman, had a run-scoring single in the eighth against Scott Linebrink to cut San Diego's lead to one run.
Trevor Hoffman pitched a perfect the ninth for his 37th save in 41 chances. With 473 in his career, he is five shy of matching Lee Smith's record.
Francis (11-11) gave up five runs and 10 hits in five-plus innings as the Rockies lost for the 11th time in their last 12 road games and dropped to 6-22 on the road since the All-Star break.
"Every mistake he made, he paid for, especially in the sixth," Rockies manager Clint Hurdle said.
Padres starter Chris Young allowed three runs and six hits in five-plus innings with eight strikeouts.
Garrett Atkins tied the score at 2 with a two-run homer in the third. Brian Giles scored on Ben Johnson's infield out in the fifth to give the Padres a 3-2 lead, but Colorado tied it in the sixth on Yorvit Torrealba's leadoff homer.
- The Rockies have hit seven homers in their last three games after homering just five times in the previous 10 games.
- Piazza established the major league record for catchers by hitting 20 or more homers in 10 consecutive seasons (1993-2002).
- The Padres, 4-1 on the homestand, pulled to .500 at home with a record of 37-37.