Updated

The San Diego Padres took advantage of the rarest of luxuries — first-inning runs.

The Padres scored four times in the first inning, three on Jorge Cantu's homer, and Aaron Harang pitched seven strong innings in San Diego's 4-3 win over the Arizona Diamondbacks on Sunday.

Center fielder Cameron Maybin made a running catch on Xavier Nady's long sacrifice fly in the eighth and the Padres held on.

"It's about time that we helped the pitchers out," Cantu said. "They've been carrying us for a long time, so it was our turn to contribute."

The Padres, shut out a major league-high eighth time Saturday night, came out swinging against Joe Saunders (0-4). It was San Diego's biggest first inning since scoring five times against Harang when he pitched for the Reds on July 29, 2009, at Cincinnati.

Going into this game, the Padres had totaled five runs in the first inning this season while giving up 23. But the early offense Sunday made things easier on Harang.

"You're able to just go out and execute your pitches and not be too fine," he said. "There's not as much pressure on your shoulders."

The early runs seemed to provide relief to a Padres team that is last in the NL in runs and has the majors' lowest batting average.

"When you score first, especially a big number like that, it sets up a lot of things as the game goes on," San Diego manager Bud Black said.

Harang (5-2), who lost his last two starts, was efficient against Arizona. The right-hander gave up two runs and scattered eight hits. He walked just one and got two double-play grounders.

"He's crafty and he threw the ball well," Diamondbacks manager Kirk Gibson said. "He's a veteran guy who knows what he's doing."

The Diamondbacks closed to 4-3 in the eighth on Nady's sacrifice fly, but it could have been worse for the Padres.

Justin Upton reached on a one-out single off Mike Adams and went to third on Miguel Montero's single. Nady followed with a drive to the gap and Maybin made the catch as he fell to the warning track. Adams struck out Melvin Mora to end the inning.

"It was a long run but I got a good read and a good jump," Maybin said. "Off the bat, I wasn't quite sure if I was going to be able to get there."

Said Adams: "I knew it was hit well. I thought it might get in the gap. But I saw Cam break on it and make the play. It makes you feel better."

Heath Bell pitched the ninth for his eighth save in nine chances. Bell's streak of 41 consecutive saves was snapped Friday night when he blew a 3-0 lead in the ninth, the final two runs scoring on third baseman Chase Headley's two-out throwing error.

Harang pitched into the seventh for the first time this season. He went six innings apiece when he set the franchise record by winning his first four starts. He also had an ERA of 1.88 in those starts.

But Harang was hit hard as he allowed 12 earned runs in his last two outings, including a career-high tying eight in an 8-2 loss April 26 against Atlanta.

San Diego has won 11 times in 13 games against the Diamondbacks at Petco Park since 2009.

Cantu, hitting .184 coming into the game, hit his third home run in the first to cap the four-run burst.

Chris Denorfia led off the inning with a single and scored on Jason Bartlett's double. After Headley drew a one-out walk, Cantu hit a 1-2 pitch from Saunders into the left-field seats. The home run was just the 21st for the Padres, the second-lowest total in the NL. It also was the club's first three-run homer this season.

"If I can get past the first, I think I'm all right," Saunders said. "It's just one of these things where maybe I wasn't as aggressive. Maybe I tried to nibble and pick a little bit too much."

Arizona's only big threat against Harang came in the second after Josh Wilson doubled in Mora with two outs. Saunders followed with an RBI single, the first of his two hits. But Harang got out of the inning when Chris Young lined out.

NOTES: Adams had his career-high streak of 15 scoreless innings snapped. ... The mothers of San Diego's Luke Gregerson, Logan Forsythe, Bell, Harang, Denorfia and Adams all threw out a first pitch to their sons. ... Forsythe made his first major league start at second base. He made his big league debut Wednesday against Pittsburgh after having his contract selected earlier that day from Triple-A Tucson. ... Gibson said he will decide Tuesday who will start in place of RHP Barry Enright, who was optioned to Triple-A Reno on Thursday.