PHOENIX -- At least Mike Napoli spared the dining patrons at Chase Field this time.
"I'm just trying to drive a ball and put a good swing on a pitch," Napoli said after the Angels won their fourth straight and 11th in the last 14.
The game-winner off Chad Qualls (1-1) came three years and four days after his 470-foot shot landed among fans in the second row of a dining section in deep left field, the third-longest homer in Chase Field history.
"I don't keep track of that," Napoli said of the home run distance. "I'm just glad I can help my team win. It was a key moment. It's definitely exciting to do that, and get our closer in the game and try to close it out."
Los Angeles also improved its major league-best record in interleague play this season to 13-4 and moved into a tie with Texas for the AL West. The Rangers hosted San Diego later Saturday night.
Napoli also had two singles, giving him 14 hits in his last 31 at-bats, with two homers and seven RBIs.
"He's got sick pop. He's got the most pop on this team by far," Angels starter John Lackey said. "I was actually in the clubhouse, telling the people about the one (in 2006). People were up there eating."
Arizona has lost four straight and seven of eight. The D-backs are 0-7-1 in their last eight home series, and have not won a series at home since taking two of three from the Chicago Cubs on May 27-29.
Lackey and Arizona's Doug Davis had nearly identical lines with each giving up an unearned run over seven innings. Lackey allowed five hits -- all singles -- with three walks and struck out nine. Davis also gave up five singles, walked three and struck out eight.
The Diamondbacks took a 1-0 lead in the fourth after Mark Reynolds led off with a single and advanced to second when left fielder Juan Rivera let the ball get past him for an error. Reynolds moved to third on Felipe Lopez's grounder and scored on Tony Clark's sacrifice fly. Clark drove in a run for the third straight day, following solo home runs Thursday and Friday.
The Angels tied it in the sixth. Erick Aybar pushed a bunt to the right of the mound that Davis fielded in front of first baseman Clark, who also charged on the play. Davis fielded the ball cleanly but had to double-clutch the throw while waiting for second baseman Lopez to get to first, but his throw was behind Lopez and rolled into foul territory behind first base.
Right fielder Justin Upton fielded the ball but overthrew third baseman Reynolds, and Aybar came around to score as the ball rolled into foul territory behind third.
"So much happened on that play it is hard to pick on one thing or another. It was just a horrible baseball play," Arizona manager A.J. Hinch said.
Arizona's errors increased its total to 67 this season, the second-most in the majors -- one behind Washington.
Davis has given up three earned runs or fewer in eight of his last 10 starts but has only one victory in that stretch.
"I feel like I'm giving the team a chance to win. Unfortunately, we haven't been doing that," Davis said. "The guys are battling every day. It's not they are laying down and dying."
Arizona recalled RHP Leo Rosales from Triple-A Reno on Saturday after optioning RHP Billy Buckner down. Buckner (2-5, 8.63 ERA) gave up eight runs in 1 2/3 innings Friday night in a 12-3 loss to the Angels. Rosales, 1-0 with a 5.40 ERA, is in his second stint with Arizona this season. ... The first pitch at Chase Field on Saturday was thrown out by a Diamondbacks fan who punched out 50,000 All-Star ballots, according to an announcement over the public address system. ... Arizona CF Chris Young did not start Saturday and is not expected to start Sunday to permit a groin injury suffered June 18 to fully heal. The D-backs are off Monday. Young started Friday for the first time since the injury but was removed after six innings. He struck out as a pinch-hitter Saturday.