PHILADELPHIA -- Missing four regulars, the Philadelphia Phillies turned to their bench and bullpen.
The major league-leading Phillies took two of three in a potential playoff preview, improving to 14-1-1 in their last 16 series.
A thunderstorm delayed the game for 2 hours, 17 minutes after three innings. Neither starting pitcher returned when play resumed.
Herndon (1-2) gave up one hit and struck out four to earn his second career win. Ryan Madson finished for his 23rd save in 24 tries.
"He did a great job," manager Charlie Manuel said of Herndon. "He did super."
Herndon was a starter in the minors, but he's pitched out of the bullpen in his two seasons with the Phillies.
"I'm a failed starter," he joked. "I try not to overthrow. Early in the season, I was trying to throw 95 (mph) all the time. Now I'm just trying to stay down in the zone."
Ian Kennedy (15-4) gave up three runs and five hits in three innings, failing to become the NL's first 16-game winner. He had won his previous seven starts.
"He just made a couple of mistakes," manager Kirk Gibson said. "The pitch to Mayberry was down the middle and he blasted it."
Arizona remained 2½ games ahead of the defending World Series champion San Francisco Giants in the West.
Phillies starter Vance Worley allowed one hit in three scoreless innings. The rookie remained 8-1, but Philadelphia has won his last 11 starts.
Rookie Paul Goldschmidt homered for the Diamondbacks. He has four homers in 47 at-bats since getting called up on Aug. 1.
The Phillies, who lead the Atlanta Braves by 8½ games in the East, are a season-best 38 games over .500 and have reached 80 wins in the second-fastest time in franchise history. They did it in 121 games in 1976.
Wilson Valdez, who hit a tiebreaking two-run double in Wednesday's 9-2 win, put the Phillies up 1-0 with an opposite-field RBI double in the second. Raul Ibanez hit a one-out double and scored on Valdez's liner to right.
Mayberry connected in the third, launching a drive high off the left-field foul pole. Mayberry has settled in nicely as the team's fourth outfielder. It was his 10th homer this season and seventh in 73 at-bats since being recalled from Triple-A Lehigh Valley on July 5.
The Phillies played All-Star center fielder Shane Victorino, who served the first of his two-game suspension for his part in a benches-clearing brawl at San Francisco on Aug. 5. First baseman Ryan Howard (hand), catcher Carlos Ruiz (groin) and All-Star third baseman Placido Polanco (sports hernia) were also out. Howard and Ruiz are day to day and could return Friday.
The Phillies are 24-3 in games catcher Brian Schneider has started. ... Jimmy Rollins has hit safely in 18 straight games against Arizona, dating to 2007. ... A crowd of 45,633 was the 200th straight sellout at Citizens Bank Park, including postseason play. .. Kennedy's streak of 22 straight starts throwing at least 100 pitches ended. ... Arizona's Kelly Johnson was 0-for-3. He's 15-for-89 (.169) since the All-Star break. ... Roy Oswalt (5-7) takes the mound for the Phillies at Washington on Friday night. He'll face Livan Hernandez (7-11). Oswalt is 6-4 in 19 career games against the Nationals. ... Daniel Hudson (12-8) pitches for the Diamondbacks at Atlanta against Derek Lowe (7-11) on Friday. He's never faced the Braves.