Updated

Mike Leake isn't sure whether he's starting to figure things out after a bumpy April left his confidence a bit shaken and his ERA too high.

Still, there was a sense of relief after the Cincinnati Reds' right-hander put together his best performance of the season in a 3-2 loss to the Pittsburgh Pirates on Saturday night.

Though Leake's record fell to 0-4, he pointed to signs of progress after allowing three runs and four hits in seven innings. He walked four and struck out four.

"It's definitely a step in the right direction," said Leake, whose ERA dropped from 6.65 to 5.97. "Even though I had four walks, I was still happy with the way I threw the ball. I had a couple more mistakes than what showed, but they made me pay for two of them."

Neil Walker hit a two-run homer for the Pirates and Alex Presley added a solo shot to back James McDonald (2-1), who struck out seven in 6 1-3 innings to extend his strong start. Joel Hanrahan worked a perfect ninth for his fifth save.

"When (McDonald) has his breaking ball working, he's tough," Cincinnati manager Dusty Baker said. "That was a power breaking ball. We thought if we stayed close we were going to have a good opportunity to get him."

The Reds kept Pittsburgh well within range but kept running themselves out of innings. Cincinnati hit into four double plays, only one of them truly conventional.

Joey Votto was nailed at the plate to end the fourth and Scott Rolen never had a chance trying to tag up from first in the seventh.

"I think we hit into two (double plays) and ran into two more. There's eight outs right there," Baker said. "You usually don't win when you run into that many double plays."

Save for a brief two-game slide in St. Louis earlier this week, Pittsburgh has alternated wins and losses since April 18. Most of the games have followed a similar script — six have been decided by three runs or less.

"You think, let's get that one hit, something to break it open," Pirates manager Clint Hurdle said. "That's not where we're living right now."

Instead, the Pirates are getting by with pitching and defense. In addition to the double plays, Jose Tabata made a running catch on Votto's drive to left-center with a runner on to end the sixth.

"This might be one of the better games we played, and needed to play, to win the game," Hurdle said. "It was above and beyond what you normally get. Those are big-time plays. We needed every one of them."

Walker hadn't homered since Sept. 4, 2011, but his two-run shot in the third gave McDonald an early cushion before Pittsburgh's bullpen staved off a late Cincinnati rally.

Though the switch-hitting Walker isn't a power hitter, he's a vital part of Pittsburgh's offense. His drought included a homerless spring training, too.

"I was looking for a pitch up and got it and was able to get the barrel on it and get it in the seats," Walker said.

Votto had two hits for the Reds, but Cincinnati was undone by some slick Pittsburgh glovework and the quickly maturing McDonald.

The 27-year-old right-hander is beginning to harness his control, a problem that's plagued him early in his career and made it difficult for him to pitch deep into games.

There were no such issues on Saturday. He worked into the seventh for the third straight start before running into trouble when Jay Bruce tripled and scored on Rolen's single.

Juan Cruz came on in relief and escaped further damage when Ryan Ludwick lined to center and Rolen was tagged out at second trying to advance.

The Reds drew within one in the eighth against Jason Grilli when Zack Cozart doubled home Devin Mesoraco. Grilli struck out Drew Stubbs and intentionally walked Votto to get to Brandon Phillips, who struck out swinging as Grilli pumped his fist.

Hanrahan retired Cincinnati in order in the ninth to blunt the Reds' momentum. Cincinnati came in 7-3 in its last 10 games to move over .500 for the first time in a month.

The Reds, however, couldn't get two games over .500 for the first time since June 29, 2011.

NOTES: The series concludes Sunday. Mat Latos (1-2, 5.97 ERA) starts for Cincinnati against Charlie Morton (1-2, 4.22). ... Rolen's next double will be the 506th of his career and will tie him with Babe Ruth for 48th place. ... Pittsburgh 3B Pedro Alvarez went 0 for 2 with two walks in his first game batting cleanup this season.