SAN DIEGO -- Forget about adding offense before the trade deadline. Maybe the San Diego Padres already have enough punch in their unheralded lineup.
All-Star slugger Adrian Gonzalez hit a two-run homer to key a five-run inning and the NL West leaders banged out 14 hits Friday night, coming out of the All-Star break with a 12-1 victory over the Arizona Diamondbacks.
Following a six-game road trip right before the break when San Diego averaged more than six runs a game, the light-hitting Padres scored in double figures at pitcher-friendly Petco Park for the fourth time this season.
"The bats are there," second baseman David Eckstein said. "We enjoy our club. Everybody pulls for everybody. We have great chemistry. That's something that we don't think about. If they want to do something, OK. But we're going to show up every day."
So far that's carried the Padres into first place. They have a three-game lead over Colorado, which lost 3-2 at Cincinnati.
San Diego, which ranks near the bottom of the NL in most batting statistics, tagged Dan Haren (7-8) for six runs and eight hits in five innings. Haren had a 5-1 record with a 2.89 ERA in 12 starts against the Padres coming in.
"If you adjust for factors, we are right around the National League average," San Diego general manager Jed Hoyer said before the game. "We're not the 1927 Yankees, but we're not one of the worst offenses, either."
The Padres have been a clutch-hitting team, with 13 victories in their final at-bat, including 11 at home.
"This is a club that is built on pitching and defense because the ballpark is conducive to that," said Chase Headley, who had three hits. "You are going to sacrifice some numbers on the offensive side, but we have hit when we needed to."
Gonzalez put San Diego ahead 2-1 in the fourth when he connected off Haren for his 19th homer. San Diego added three more runs in the inning.
Jon Garland (9-6) finally beat the Diamondbacks after having tough luck in his first two starts against them this season. The right-hander allowed one run and three hits with five strikeouts and two walks in six innings. He combined with three relievers on a four-hitter.
"After the first inning, I started getting ahead of guys," Garland said. "I was able to throw all my pitches for strikes."
In his two previous outings against the Diamondbacks, including an opening-day 6-3 loss at Arizona, Garland had gone 0-1 while allowing seven unearned runs.
Arizona has lost eight of 10 to drop 18 1/2 games behind the Padres.
"Obviously, not the way we wanted to start," interim manager Kirk Gibson said. "It is what it is and sometimes you have to wear it. It's not fun, but you bounce back."
Scott Hairston drove in three runs and Headley had a solo homer while tying his career high with four runs.
After Eckstein led off the fourth with a double, Gonzalez connected against Haren on an 0-1 pitch off the outside part of the plate to drive the ball into the left-field stands. The ball barely made it over the wall into the front row.
Headley followed with a double and went to third on Nick Hundley's single. One out later, Aaron Cunningham hit a sacrifice fly. A walk and an infield single by Garland loaded the bases before Jerry Hairston Jr. singled in two runs for a 5-1 lead.
"I just got some pitches up in the zone in the inning," Haren said. "I felt good, but I just couldn't get a big out."
Headley added a homer off Haren, his seventh, in the fifth.
"It's been tough, obviously, and not a good way to start the second half," Haren said. "Personally, it's frustrating. I felt good and didn't get any results."
Haren, who struck out eight and walked one, is 0-4 in his last six starts with a 4.57 ERA.
San Diego added four runs in the eighth after Jordan Norberto walked the bases loaded with one out and was replaced by Aaron Heilman. The right-hander then issued two walks, hit a batter with a pitch and allowed a single.
Haren has allowed 21 homers, tying him with Milwaukee's Randy Wolf and Tampa Bay's James Shields for the major league lead. ... Cunningham had an infield single to extend his hitting streak to 11 games, tying Gonzalez for the club's season high.