On a night when Arizona ace Zack Greinke left early with tightness in his oblique muscle, the Philadelphia Phillies finally won another series.
Greinke departed after two innings and Philadelphia rallied with two runs in the ninth inning to beat the Diamondbacks 4-3 on Tuesday night, ensuring the Phillies' first series win in their last 13.
Andres Blanco had an RBI single and Frank Howard drew a bases-loaded walk off closer Brad Ziegler (2-3), who blew his second save in his last three tries after converting 43 in a row. Maikel Franco homered for Philadelphia.
Greinke, in search of his 11th win, hit a bases-loaded sacrifice fly to score a run in the second and left after a few warmup pitches before the start of the third.
Manager Chip Hale said there was no way he was going to risk his prize pitcher worsening the injury.
"It's something maybe he can maybe miss a start, possibly not miss a start, possibly at worst maybe 15 days on the DL," Hale said. "You never know. But if you go out and really yank it bad, you're talking about a month or two, so we'll hope for a best-case scenario."
The Phillies last won a series May 16-18, against Miami.
"It reminded me the way we played the first two months of the season," Philadelphia manager Pete Mackanin said. "We stayed in the game, scratched and clawed and eked out a win. That is the way we did it for two months."
The Phillies have won four of six since snapping a nine-game losing streak.
"It helps the team mentally," Blanco said. "It is not always loss, loss, loss, loss. This time we have been playing good the last six or seven games. Even though we lost a couple on San Francisco we have been doing pretty good. `'
Hector Neris (2-3) pitched a scoreless eighth to get the victory as the Phillies won a series for the first time in 13 tries. Jeanmar Gomez tossed a perfect ninth for his 21st save.
Home runs by Yasmany Tomas and Jake Lamb put Arizona ahead 3-2 entering the ninth. Jimmy Paredes' pinch-hit double started the ninth-inning Philadelphia uprising.
Greinke allowed a run in the second inning on consecutive singles by Freddy Galvis, Cesar Hernandez and the pitcher Jerad Eickhoff. In the bottom of the inning, Arizona loaded the bases with no outs but the only run they scored was on Greinke's sacrifice fly to left. Greinke figures he hurt himself with that swing.
When the Diamondbacks pitcher walked back onto the field to start the third, he looked at the dugout and called for the trainer. After a short huddle with umpires, Greinke went into the dugout to rub some heat ointment and emerged a moment later.
He threw a few warmup pitches off the mound, didn't feel any better and left the game. Greinke hasn't missed a start since 2013. Greinke was 7-0 in his previous eighth start.
"I was pitching pretty good for a while and felt really good today," he said. "Hopefully it's nothing major -- we'll find out more in the next couple of days -- and hope it's nothing much at all and (I) just continue pitching good."
Franco's two-out solo shot off Randall Delgado in the fourth put Philadelphia up 2-1. Arizona tied it 2-2 when Tomas led off the sixth with his home run. Lamb's homer in the seventh put the Diamondbacks up 3-2.
Diamondbacks: LHP Robbie Ray said he was fine and would be ready for his next scheduled start Sunday against San Francisco. Ray left Monday night's 8-0 loss to Philadelphia with a blister on his left middle finger.
Phillies: RHP Zach Eflin (0-2, 6.28 ERA) gets the start as the Phillies try to complete a three-game sweep of the team that swept them in four games in Philadelphia a week ago.
Diamondbacks: RHP Archie Bradley (3-3, 4.50 ERA) makes his career-high eighth start of the season as the Diamondbacks look to salvage the final game of the series in a Wednesday afternoon contest.