SAN DIEGO -- With three weeks left in the season, Arizona manager A.J. Hinch implored his club to finish strong.
Hinch delivered the message in a pregame meeting to try and pull out of last place in the NL West, where they trail the Padres by two games.
"I challenged our team to go out and prove that the Padres are not a better team than us," Hinch said. "That was a good start tonight."
Arizona won for only the second time in 11 games. San Diego has a 27-18 record (.600) since July 28 and has won 11 of 14 series during that span.
"It gave us good motivation to go out there and show that we are a good team," Allen said. "Every guy wants to come up and do well."
Gerardo Parma started the winning rally in the 10th with a one-out infield single off Adam Russell (2-1). Ryan Roberts then singled with pinch-runner Trent Oeltjen taking third. Allen got ahead in the count 3-0 before he lined a 3-1 pitch to right-center to bring home the go-ahead run.
Pinch-hitter Alex Romero then grounded out to bring in another run as Arizona won for only the second time in 11 games.
Clay Zavada (3-3) pitched one inning for the victory. Juan Gutierrez worked the 10th inning for his fourth save in five chances.
The Diamondbacks took a 2-0 lead in the second on a two-run single by rookie pitcher Billy Buckner, who came in 3 for 11 (.273) off Kevin Correia.
"Those pitchers are tough sometimes," Correia said. "You've never seen him before but we knew he was a good hitter. There is no real scouting report, so it's tough."
San Diego scored runs in the sixth and seventh off Buckner, who allowed nine singles in six-plus innings and struck out a career-high eight. But the Padres stranded 11 runners, including twice leaving the bases loaded.
"We've done a great job over the last six weeks of situational baseball on the offensive side," San Diego manager Bud Black said. "We didn't execute like we have been."
Arizona left 13 runners on base.
Although Buckner has lost his past five decisions, he turned in his second successive solid start. The right-hander got no decision in his previous outing last Tuesday when he allowed one run on five hits over seven innings in a 5-4 loss to the first-place Los Angeles Dodgers.
"I think my command overall and getting ahead of guys have been the biggest difference," Buckner said.
Correia allowed two runs on seven hits over 6 1/3 innings with seven strikeouts and two walks.
The Padres scored in the sixth on consecutive singles by Tony Gwynn Jr., Adrian Gonzalez and Chase Headley to start the inning. San Diego loaded the bases with one out on Drew Macias' single but Buckner got out of the jam.
Pinch-hitter Luis Gonzalez led off the San Diego seventh with an infield single and Buckner had a throwing error on Everth Cabrera's sacrifice bunt. Scott Schoeneweis came in, and after a strikeout, hit Gonzalez to load the bases. Headley followed with a groundout to tie the game at 2.
Miguel Montero got Arizona going in the second when he led off with a walk and Mark Reynolds followed with a single off Correia. After Correia got two outs, he intentionally walked Allen to pitch to Buckner, who hit a ball into the right-center gap for a two-run single.
Reynolds made a great catch when he dived into the stands in foul territory down the third-base line on a pop foul from Cabrera in the third inning.
Reynolds struck out once to increase his major league-leading total to 194. ... Padres 2B David Eckstein was a late scratch due to a stiff neck. ... San Diego recalled RHP Ernesto Frieri and OF Luis Durango from Double-A San Antonio.