Ketel Marte also homered for Arizona, which won for the sixth time in its last eight games.
“We compete no matter what the circumstances are,” Diamondbacks manager Torey Lovullo said. “We don’t shut down. That’s one of the great characteristics of this team. There’s always max effort, max engagement. Their starting pitcher is very good, but we kept it within striking distance and got some clutch hitting.”
Ke’Bryan Hayes accounted for all the Pirates’ scoring with a bases-loaded triple. He has back-to-back games with at least three RBIs for the first time in his career.
Keller allowed two runs and three hits while retiring 16 batters in a row between the first and sixth innings. He struck out eight and walked none, but Pirates manager Derek Shelton removed him after 84 pitches with a 3-2 lead. Keller had pitched 16 scoreless innings while winning his previous two starts.
Keller is the first Pirates pitcher since at least 1901 to have five straight starts with at least eight strikeouts and one walk or less.
“The fact that in the sixth inning there he kind of lost his delivery a little bit," Shelton said of his decision to lift Keller. “We saw the pitches started to not have the same action. One of the things that, as well as he’s pitched over the last two starts and even today, he hadn’t been in the stretch.
"Once he got to the stretch, he kind of lost where his arm slot was.”
Lourdes Gurriel Jr. greeted Stephenson (0-2) with a single to lead off the seventh and extend his hitting streak to 13 games. Smith followed by driving a 3-1 fastball over the right-center field fence.
“We did a good job getting Keller out after six by grinding a couple of runs against him,” Smith said. “Lourdes gets a leadoff single and then I just tried to keep things simple. (Stephenson) threw me a lot of sliders but I felt he was going to have to come into the zone with a fastball and I was able to put a good swing on it.”
The home run made a winner of Kyle Nelson (4-1), who retired three batters after relieving rookie starter Brandon Pfaadt. Miguel Castro worked around a leadoff walk to Rodolfo Castro in the ninth by striking out the next three batters for his fourth save.
Pfaadt pitched 5 1/3 innings and gave up three runs and six hits while striking out three and walking two. He is winless in four career starts.
There are definitely some things we can take away from this start and keep building on,” Pfaadt said. “It was a good day out there.”
Marte opened the scoring with a solo homer with one out in the first.
The Diamondbacks didn’t get another runner on base until Josh Rojas was hit by a pitch with two outs in the sixth. Rojas eventually scored on Carroll’s single off diving shortstop Tucupita Marcano to draw the Diamondbacks within 3-2.
Hayes’ triple put the Pirates in front 3-1 in the third inning. The ball carried over the outstretched glove of Smith in right field and off the out-of-town scoreboard.
The Pirates had won three of four after losing 11 of 12.
Diamondbacks: LHP Anthony Misiewicz (strained right calf) was placed on the 15-day injured list after being hurt while covering first base in Friday night’s loss to the Pirates. ... RHP Austin Adams was selected from Triple-A Reno and retired both batters he faced Saturday. ... C Carson Kelly was transferred from the 10-day IL to the 60-day IL to open a spot on the 40-man roster.
Pirates: RHP Duane Underwood Jr. was feeling better a day after leaving the game with right forearm tightness … RHP Vince Velasquez (right elbow inflammation) was scheduled to make a rehab start Saturday night for Triple-A Indianapolis.
In the finale of the three-game series Sunday, Diamondbacks RHP Merrill Kelly (4-3, 2.92 ERA) opposes RHP Roansy Contreras (3-4, 4.40). Kelly is 3-0 with a 2.42 ERA in his last four starts, while Contreras has lost his last three starts with a 5.71 ERA.
AP MLB: https://apnews.com/hub/mlb and https://twitter.com/AP_Sports