PHOENIX - On a night of missed opportunities, Paul Goldschmidt and Welington Castillo didn't miss theirs.

Goldschmidt and Castillo each hit a solo home run, and the Arizona Diamondbacks held on to beat the Los Angeles Angels 3-2 Wednesday night.

Both homers came off Hector Santiago (4-4).

Yasmany Tomas had three hits for Arizona, including an RBI triple. Goldschmidt's 19th home run came in the first inning.

"He is a very smart hitter, very patient and he hits your mistakes," Santiago said. "It was weird because I threw three pitches in and then the fourth one he just seemed like, 'This is what I was waiting for.' It was like it was exactly like he was waiting for that pitch."

Castillo hit his fourth homer — second since coming to the Diamondbacks — leading off the fourth.

Goldschmidt had two hits to raise his batting average to .363, best in the majors. He has reached base in 27 consecutive games, the longest active streak in the majors. He also made a couple of diving stops at first base.

Chase Anderson (3-1) allowed two runs and seven hits in six innings for his second straight win.

"I felt good overall. My stuff wasn't there like it was my last couple of starts," he said. "That's part of the process. We have a really good defence and we made some really good plays to help me out tonight. And the home runs definitely helped."

Los Angeles' runs came on a double-play grounder and Albert Pujols' groundout. The Angels were 0 for 9 with runners in scoring position, but manager Mike Scioscia wasn't entirely displeased.

"Some parts of tonight were very frustrating," he said, "and some parts on the offensive side we saw some good signs."

Brad Ziegler gave up a leadoff single to Chris Iannetta, but induced a double-play grounder and got his ninth save in 10 tries.

The four-game interleague series shifted to Arizona after the teams split two in Anaheim.

Anderson, who allowed one hit in seven scoreless innings at San Francisco in his previous start, blanked Los Angeles through four and the Angels were hitless until Kole Calhoun lined a single over the head of second baseman Chris Owings with one out in the fourth.

Anderson had not allowed a run in 14 2-3 innings before Matt Joyce scored from third when Iannetta grounded into a double play in the fifth.

Los Angeles made it a one-run game in the sixth, but it could have been worse for Arizona.

Calhoun's single and Mike Trout's double put runners at second and third with no outs. Diamondbacks shortstop Nick Ahmed made a diving stop of Pujols' sharp grounder, got to his feet and just got Pujols at first as Calhoun scored on the play.

"He went a far way to get that ball," Goldschmidt said. "He's one of the best shortstops in the league. He's unbelievable. It might have saved the game there."

Trout advanced to third on a flyout but was stranded when Johnny Giavotella lined to third.

Both teams squandered big scoring opportunities, Arizona in the sixth and the Angels in the seventh.

Arizona had runners at first and third with no outs in the sixth when reliever Cam Bedrosian struck out Ahmed, then Owings was caught in a rundown between third and home. Owings mistakenly thought the squeeze was on.

"Just a missed sign at a bad spot," Diamondbacks manager Chip Hale said.

Pinch-hitter Cliff Pennington grounded to first to end the inning.

Los Angeles had runners at second and third with no outs following Iannetta's single and pinch-hitter Efren Navarro's ground-rule double. But Erick Aybar popped out to the pitcher on a bunt attempt and Calhoun flied out to short centre. Daniel Hudson came on to face Trout, who bounced to third to end the threat.

Joyce tripled to deep centre off Hudson with two outs in the eighth, but Giavotella struck out. Hudson retired the heart of the Angels' order in his 1 1-3 innings — Trout, Pujols and David Freese.

"That's our best guy in that situation," Hale said. "We had him in the right spot at the right time and he came through for us. That was huge tonight."

TRAINER'S ROOM

Diamondbacks: RHP Archie Bradley (right shoulder tendinitis) is slated to pitch a simulated game on Thursday.

UP NEXT

Angels: Los Angeles wraps up the four-game, home-and-home series with LHP C.J. Wilson (4-5, 3.60 ERA) on the mound in an afternoon game.

Diamondbacks: RHP Allen Webster (1-0, 3.18) is coming off a victory in his major league debut at San Francisco. He was recalled from Triple-A Reno after the team moved Josh Collmenter to the bullpen.