SAN DIEGO — Arizona manager Chip Hale thought his team's offense was ready to break out, and he was right.
The Diamondbacks' power surge offset three home runs given up by starter Chase Anderson for the second straight game and helped Arizona snap a three-game losing streak.
"The guys bounced back," Hale said. "Welington's home run was beautiful, Lamber off the lefty, that was nice. It was a day of home runs."
Castillo's three-run shot gave the Diamondbacks a 3-1 lead in the second. Peralta had a solo drive in the third, and Lamb's two-run homer made it 6-3 in the sixth.
"It was a hanging curveball and I put a good swing on it," Castillo said. "I feel really good because I've been to the plate plenty of times. The more I play the better I'm going to feel."
Anderson (4-2) pitched seven innings and gave up four runs and five hits. Brad Ziegler worked the ninth for his 12th save in 14 chances.
"It was a battle," said Anderson, who has won three of his last four starts. "But the defense made some nice plays and putting up six runs definitely makes it a little bit easier on you."
"I put a couple of good swings on a couple of good pitches." Norris said. "Sometimes your power surges come at different times."
San Diego right-hander Odrisamer Despaigne (3-6) allowed five runs — four earned — and three hits over 5 2/3 innings. He is 1-6 with a 5.68 ERA in his last 10 starts.
Trailing 4-3 in the sixth, Despaigne got the first two outs before he hit Cuban countryman Yasmany Tomas. Lefty Frank Garces then came on to face the lefty-hitting Lamb, who drove a 1-2 pitch into the right-field stands for his second of the season.
"(Garces) had been pitching decent, but he didn't execute his pitch," San Diego interim manager Pat Murphy said.
The win moved Arizona back ahead of San Diego into third place in the NL West.
Kemp hit a leadoff drive for the Padres in the first, and Norris connected for a two-run homer in the fourth. He went deep again in the sixth for his 11th homer.
Since being moved into the leadoff spot five games ago, Kemp is hitting .350 (7 for 20) with two doubles, two homers and five RBIs. In his previous 13 games, he was batting .192 with two home runs and four RBIs.
A LONG TIME COMING
Lamb's home run in the sixth inning was just his second of the season and first since April 7 in the second game of the season.
Padres 3B Will Middlebrooks left the game in the seventh inning after he rolled his ankle while trying to catch a foul popup near the Diamondbacks' dugout. Middlebrooks missed making the catch when he tripped over a weighted bat in the on-deck circle.
Diamondbacks: OF A.J. Pollock was held out of the starting lineup for just the second time in 30 games because Hale is concerned about fatigue.
Padres: A decision on whether to place 2B Cory Spangenberg (left knee bone bruise) on the 15-day disabled list will take place before Tuesday's game against Seattle. Spangenberg was hurt when Arizona's Nick Ahmed took him out with a slide in Saturday night's game as Spangenberg was completing a double play in the first inning. ... C Tim Federowicz (right knee surgery) caught a simulated five innings in the bullpen before the game. Federowicz, out since spring training, caught 17 pitches in each of the five simulated innings with rest in between.
Diamondbacks: RHP Allen Webster (1-1, 6.46 ERA) will open up a three-game series at home against the Los Angeles Dodgers on Monday night. Webster is coming off one of the worst starts of his career, having allowed a career-high eight runs in a 10-5 loss at Colorado.
Padres: After an off day on Monday, RHP Ian Kennedy takes the mound Tuesday night to start a two-game set against Seattle, San Diego's last home games before the All-Star break.