PHOENIX -- So many great outings for Zack Greinke yet he never has thrown a no-hitter.
The 33-year-old right-hander came tantalizingly close in Arizona's 2-1 victory over Pittsburgh Thursday night.
Gregory Polanco ruined the bid with a leadoff home run in the eighth inning.
"Pretty impressive night for Zack," Diamondbacks manager Torey Lovullo said, "flirts with a no-hitter. We're all engaged in the dugout. We're as excited as anybody in in the stadium. Unfortunately he might have made one mistake.'"
Greinke (4-2), who dominated the Pirates with a vicious slider, allowed that one hit in eight innings. He struck out 11 and walked one.
"The slider was pretty good," he said. "Most pitches were pretty good."
Greinke's ERA dropped to 2.79. He's had only one truly bad outing in his eight starts.
"His slider's been very good with late action in the hitting zone," Lovullo said. "He's been typical Zack for the last several outings. We're pleased that he's been as locked in as he has been. He's been carrying the staff and we want that to continue. It was a great outing for him all-around."
But Pirates manager Clint Hurdle said he's seen Greinke throw better.
"I have seen fastballs (with) more velocity, more life," Hurdle said. "He pitched tonight. He made pitches, he kept away from the middle of the plate, controlled bat speed. I have seen him a number of different ways, a number of different uniforms, but I can't say this is the best I have ever seen him pitch."
Fernando Rodney pitched a scoreless ninth for his ninth save in 11 tries. The game ended when Jeff Mathis threw out Josh Harrison from his knees trying to steal second.
Greinke faced the minimum 21 batters through seven innings. Jordy Mercer led off the third with a walk but was thrown out by Mathis trying to steal second.
Greinke said he began thinking about the no-hitter about the sixth inning.
"I got a one-hitter one time," he said, "but they got the hit the first or second inning so it wasn't very exciting."
Greinke said he "made a decent pitch" to Polanco.
But it was "too many inside pitches," he said. "He was obviously on the inner part of the plate that last at bat."
Gerrit Cole (1-4) allowed two runs and seven hits in seven innings. He struck out five and walked one. Pittsburgh has scored five runs total in Cole's last five starts.
The Pirates, swept by the Dodgers in Los Angeles over the weekend, lost their fifth straight and ninth in 12 games.
Arizona's David Peralta doubled twice and made a diving grab in right field to rob Andrew McCutchen in the first inning.
Jake Lamb doubled in a run and Brandon Drury had an RBI single for the Diamondbacks.
Greinke had nine strikeouts in the first five innings, most of them on sliders. McCutchen's' first-inning liner was the only ball to reach the outfield for the Pirates until the seventh inning.
Polanco hit Greinke's 2-2 pitch into the right field seats for his first home run of the season. Earlier in the at-bat, Polanco narrowly missed a homer with a towering foul ball to right.
"I said `Wow, unbelievable,'" Polanco said of the long foul. "I said, `I have to keep fighting. The at-bat is not over. I found my pitch and hit it."
Greinke has thrown one one-hitter, for Kansas City at Seattle on Aug. 30, 2009.
He was trying to become the third Arizona pitcher to throw a no-hitter. Randy Johnson threw a perfect game at Atlanta on May 18, 2004, and Edwin Jackson had a no-hitter at Tampa Bay on June 25, 2010.
The only no-hitter thrown at Arizona's Chase Field was by Jose Jimenez of St. Louis on June 25, 1999.
Pirates: Utility player Adam Frazier, on the DL since April 24 with a left hamstring strain, began a rehab assignment this week with Triple-A Indianapolis. He started at second base on Monday night, going 1 for 3 with a double, walk and RBI. He played left field Wednesday night, going 2 for 3 with a walk.
Diamondbacks: RHP Shelby Miller underwent Tommy John surgery Wednesday in Los Angeles. The operation was performed by Dr. Neal ElAttrache, the team doctor for the Dodgers.
Diamondbacks: LHP Patrick Corbin (2-4, 3.89 ERA), coming off a rough outing in Colorado, gets the start for Arizona and RHP Tyler Glasnow (1-2, 6.33) goes for the Pirates in the second game of the series Friday night.