Webb (6-0), the 2006 Cy Young winner, allowed just one unearned run and twice escaped bases-loaded jams before leaving after six innings. He became the first six-game winner in the majors and lowered his ERA to 1.98.
Snyder connected off Peavy despite playing with the flu, which sidelined him Saturday. He also caught the entire game despite an unseasonably high 91-degree gametime temperature, the hottest game in San Diego in 2 1/2 years.
"I trust him totally," Webb said. "To have him back there just gives me a lot of confidence. He sucked it up and battled for me today, and I appreciate it."
Peavy (3-1) gave up four hits in seven innings, losing at home for the first time in 10 starts since July. Peavy had gone 6-0 with a 0.68 ERA in that span.
"We had a chance to beat the best team in the National League, but I couldn't do what I needed to do for us to win the game," Peavy said. "I threw the wrong pitch. Unfortunately, that one pitch cost us the ballgame."
Webb became the first Diamondbacks pitcher to win his first six decisions since Randy Johnson in 2002. Johnson holds the franchise mark by winning seven consecutive decisions to start the 2000 season.
Peavy, whose ERA rose to 2.09, allowed more earned runs Sunday than he had in his first three home starts this season when he gave up just one earned run in 24 innings.
Webb combined with three relievers on a five-hitter. Brandon Lyon pitched the ninth for his seventh save in nine chances.
"I knew that there was not going to be a whole lot of runs because [Peavy] was throwing well all day," Webb said. "I knew there was not going to be lot of room for error, so it makes you focus in even that much more."
Peavy and two relievers held the Diamondbacks to four hits.
Snyder spent virtually all of Saturday's game in the clubhouse alternating between getting sick and receiving treatment. Before hitting the homer, Snyder had gone hitless in 11 career at-bats against Peavy.
"For Chris Snyder to even play in that game, let alone starting, is pretty amazing," Arizona manager Bob Melvin said. "At times he was getting dizzy. To accomplish what he did behind the plate and at the plate today was huge for us."
Snyder connected on a fastball with two outs in the second after Peavy walked Stephen Drew. It was his first home run since Sept. 16.
"I'm just glad it went quick and I didn't really have to do much," Snyder said. "There wasn't a whole lot of running, there weren't any plays at the plate, there weren't any drag bunts and I didn't have to block many balls."
Arizona raised its record to a major league-best 18-7, breaking the franchise record for wins in April. The Diamondbacks, who won on Opening Day on March 31, have won 17 games this month, one better than the club mark set three times.
The Diamondbacks also went 17-5 in a stretch of 22 consecutive games against NL West teams.
San Diego lost for the 10th time in 12 games.
"Confidence-wise, it sets a tone in our minds," Melvin said. "But there is a lot of baseball left to be played."
The Padres cut Arizona's lead to 2-1 in the fourth. Adrian Gonzalez walked and reached third on second baseman Orlando Hudson's error, allowing Kevin Kouzmanoff to reach. Jim Edmonds followed with a sacrifice fly.
Webb struck out Kouzmanoff with the bases loaded to end the fifth.
Khalil Greene and Tadahito Iguchi hit consecutive singles with one out in the sixth before Webb walked Josh Bard to load the bases. Webb struck out Peavy and first baseman Conor Jackson made a diving stop of a grounder by Brian Giles before throwing to Webb for the last out.
"Jackson made a great play," Giles said. "When things are going your way, the ball gets through. But things aren't going our way right now."
San Diego stranded 10 baserunners. ... Webb raised his career mark in March/April to 18-2 in 29 starts. ... Peavy has pitched at least six innings in 11 straight starts, dating to last season. ... The game was the hottest in San Diego since Sept. 5, 2004, when it was also 91 degrees. The last time it was hotter for a game in San Diego was Aug. 30, 1998, when it was 93 degrees.