PHOENIX (AP) -- Mark Reynolds homered and drove in three runs Monday night and still wasn't happy.
"The thing I hate is having a runner on third with less than two outs and not bringing him in," Reynolds said after his Arizona Diamondbacks beat the Pittsburgh Pirates 13-7. "It's an easy RBI. But I put together some other good at-bats."
Reynolds finished 3-for-5 and Chris Young snapped an 0-for-18 slide with three hits as the Diamondbacks piled up a season-high 18 hits. First-place Arizona moved 1½ games ahead of idle Los Angeles in the NL West with its eighth victory in 11 games.
"Guys are beginning to pick it up after the break," Reynolds said. "We know they're not going to hand us the division."
Arizona starter Dan Haren (12-5) struggled early but lasted six innings to earn the win, allowing four runs and eight hits. He struck out eight without a walk. Haren has not walked a batter in his last 24 1/3 innings, spanning three-plus starts.
"I really didn't have much to start," Haren said. "All in all it was kind of ugly in the first inning. I'm human. I can't go out there and put up zeros inning after inning."
The Diamondbacks took their first lead in the fifth when Alex Romero lined a two-run single off reliever Jason Davis (1-1), putting Arizona ahead 5-4. Arizona added a run in the sixth when Stephen Drew hit a one-out single, stole second and scored on Conor Jackson's single.
Reynolds led off the seventh with his team-leading 23rd homer to make it 7-5. Arizona added six more runs in the eighth off Tyler Yates and John Grabow, the Pirates' fifth and sixth pitchers, to make it 13-5.
Pittsburgh scored two runs on four hits and a walk off Arizona closer Brandon Lyon in the ninth.
"We've said a lot this year that we've got to pitch better," Pirates manager John Russell said. "Once that starts happening there are some really good things on the horizon. We know we can score. We just let people score too many against us."
The Pirates, who had scored 55 first-inning runs in their first 111 games, needed just six batters to score three against Haren. Ryan Doumit hit a run-scoring single and Brandon Moss added a two-run double to open a 3-0 lead.
"His stuff was pretty good but maybe it wasn't the command we were used to seeing," Arizona manager Bob Melvin said about Haren.
Reynolds hit a bases-loaded single off Pirates starter Yoslan Herrera to cut the lead to 3-1 and the Diamondbacks tied the score in the second on Drew's two-run infield single off the top of Mientkiewicz's glove as the first baseman made a dive to his right.
Young was one of the runners to score on Drew's hit, having ended his 0-for-18 drought on a bunt single leading off the inning.
"I was trying to find a way to get on base," Young said. "They were playing me way back at third base and that gave me the opportunity to get on."
Mientkiewicz hit Haren's first pitch of the third inning into the right-field stands to give the Pirates their final lead at 4-3.
"We were fortunate to get as many runs as we did off Dan tonight," Mientkiewicz said. "It doesn't happen often, so when it does you hope you can shut the other team down."
Herrera lasted a season-worst 1 1/3 innings, allowing three runs and four hits with three walks. The 27-year-old right-hander, making his fifth career start, has a 9.82 ERA and opponents are hitting .427 against him. He threw only 14 of his 34 pitches for strikes and was optioned to Double-A Altoona after the game.
"It wasn't good," Russell said. "He was all over. He was flirting with a lot of trouble every inning and just couldn't get anything going."
The Diamondbacks' 18 hits were their most since Sept. 20, 2006, at San Diego. ... Haren's four runs allowed were the most since he gave up five May 27 against San Francisco, a span of 12 starts. The right-hander's six-inning outing was his shortest since June 12 at the Mets. ... Pirates 2B Freddy Sanchez made his first start after missing nearly a week with back spasms and went 3-for-5 with a run and an RBI. ... Moss' double gave the Pirates a double in each of their last 36 games. ... Arizona RF Justin Upton, out since July 9 with a strained left oblique muscle, had an MRI. "We're just waiting on the results," Upton said before the game. "Things are progressing. A lot of the soreness is going away, but I'm just going to play it by ear."