PITTSBURGH -- It's been seven years since Pittsburgh won as many as 70 games in a season. The Pirates waited that long; what was one more half-inning?
Ryan Ludwick's single in the bottom of the ninth drove in the winning run and the Pirates came back from a blown save in the top of the inning for a 4-3 victory over the Cincinnati Reds on Friday night.
Ludwick's fly ball to deep center field fell for a single and scored pinch-runner Chase d'Arnaud from second after pinch-hitter Jason Jaramillo had doubled to left with one out.
"It felt like it was what I was supposed to do," said Ludwick, a trade-deadline acquisition who was hitting .231 in 34 games with the Pirates. "It's been a while since I hit a walk-off, but it felt good."
Garrett Jones homered for the first time in more than a month for Pittsburgh (70-87), which reached 70 wins for the first time since 2004.
|More on Reds at Pirates|
The Pirates had been a strike away from that elusive 70th victory, but closer Joel Hanrahan hit Todd Frazier in the hand with a 98 mph fastball, the eighth pitch of a dramatic at-bat with the bases loaded and two outs in the top of the ninth.
The blown save was Hanrahan's fourth in 43 opportunities.
"It was one of those days I didn't have my good stuff, so you try to find a way to make it work," Hanrahan said. "It's a full count there, and I think I hit my first guy of the year there. Baseball's a funny game."
Paul Janish had two hits and an RBI and Joey Votto had his 99th RBI for the Reds.
Ryan Doumit had two hits and an RBI and Andrew McCutchen added two hits for Pittsburgh, which won for the second in its past seven games overall and second time in its past seven home games.
Pirates starter Jeff Locke was on a pitch limit and was lifted after 4 2/3 innings when his 80th pitch became an RBI double by Votto.
That left two men on, but Daniel Moskos got Jay Bruce to strike out swinging to end the inning.
"We hit that young man over there pretty hard," Reds manager Dusty Baker said about Locke. "We flirted with the fence probably five or six times.
"We had plenty of opportunities, but we didn't get the hit when we needed it."
Making his third career start, Locke was charged with one run, six hits and two walks. He lasted only three innings in his most recent start.
"It's a process," the 23-year-old said. "I'm definitely taking the mound now, the nerves are gone, the composure's there. I'm still leaving some pitches up and falling behind some hitters."
Janish had an RBI single off Chris Leroux in the sixth, but Chris Resop, Tony Watson and Jason Grilli combined for two scoreless innings.
Pinch-hitter Chris Heisey started Cincinnati's ninth with an infield single and Brandon Phillips followed with a single. After a fielder's choice and a strikeout, Phillips and Drew Stubbs pulled off a double steal. Bruce was intentionally walked and Frazier was hit by the pitch.
"They didn't really hit the ball too hard that inning," Jones said. "They had some freak things happen, but we were able to help Joel out. Ryan came up with the big hit."
Jones homered for the first time since Aug. 21 after Doumit led off the second with an infield single. Jones' homer to right-center off Edinson Volquez was his 16th and traveled an estimated 458 feet.
Doumit made it 3-0 in the second with a run-scoring single.
Making his third start since being recalled after his second demotion to the minors this season, Volquez, Cincinnati's opening day starter, allowed three runs, six hits and two walks while striking out five in five innings.
"I felt good. We didn't win, but that's part of the game," Volquez said. "A lot of things happen during a game, but I was happy to be back out here and pitch some innings."
Barring setbacks, LHP Dontrelle Willis will start for the Reds on Sunday. He has not pitched since Sept. 12 due to a back injury. ... The announced paid crowd of 23,632 pushed Pittsburgh's season total to 1,874,283 - the fourth-largest in club history. ... The previous time Cincinnati's Saturday starter RHP Travis Wood faced Pittsburgh, he had the shortest start of his career, 3 1/3 innings in a 9-3 loss April 18. ... RHP Brad Lincoln will make his final start of the season Saturday for the Pirates after allowing six runs in 1 2-3 innings in his most recent outing.