Updated

Dan Hudson pitched into the eighth inning to outduel Jon Garland in his second start with Arizona and Adam LaRoche hit his 18th homer, lifting the Diamondbacks past the stumbling San Diego Padres 2-1 on Friday night.

The Padres have seen their lead in the NL West gradually dwindle, thanks to a so-so run over the past two weeks and a hot streak by the San Francisco Giants. San Diego got a solid start out of Garland (10-8), but managed just three hits to lose for the sixth time in 11 games.

Hudson (2-0) had a lot to do with it, giving up a solo homer to Will Venable in the third inning and two singles after that in 7 2-3 innings. Aaron Heilman worked the ninth for his fifth save in nine chances and eighth straight scoreless outing.

Part of a trade-deadline deal that sent right-hander Edwin Jackson to the Chicago White Sox, Hudson had a stellar opening start with the Diamondbacks, holding the Mets to a run and three hits in eight innings on Sunday.

The right-hander was just as sharp in his home debut, the lone mistake a hanging breaking ball that Venable hit out to right for a homer that tied the game at 1-all in the third.

Hudson didn't allow a runner past second after that and got a lift in the seventh inning from LaRoche, who made a highlight-reel-worthy snag of Chase Headley's grounder by sprawling to his right and getting back to the first-base bag in plenty of time.

Garland got some defensive help in the second inning after LaRoche's solo homer.

Shortstop Miguel Tejada had the first one, diving up the middle to snare Rusty Ryal's grounder, then throwing him out from his knees. Three pitches later, second baseman Jerry Hairston Jr. scooped up Gerardo Parra's slow chopper and flipped it to first with his glove.

What hurt Garland, as it has all season, were walks.

The right-hander issued two with two outs in the third inning, setting up Justin Upton's flare RBI single that put Arizona up 2-1. Garland walked the leadoff hitter and hit Ryal in the fourth inning, getting out of that jam with a double play and a strikeout, then worked around two more walks in the fifth and sixth innings.

Garland walked six — one intentional — giving him 61 on the season. He allowed two runs and three hits before being lifted for a pinch-hitter to start the eighth.

Notes: Arizona 3B Mark Reynolds missed his second straight game and will have more tests on Saturday after being struck in the head by a pitch on Tuesday. ... San Diego has lost 13 of its last 17 games at Chase Field. ... Arizona's Stephen Drew was 0 for 3 to see his 12-game hitting streak end.