"I knew about the losing streak," the 25-year-old Parra said. "It was important to stop it. They way we played today says a lot. We hit the ball. We got guys on base. We kept momentum on our side."
Parra (2-2), who has made 11 starts for Milwaukee since being called up last season, won for the first time since beating San Francisco on April 5. The left-hander allowed only four hits and a walk, and struck out six.
"Manny is making real positive strides every time he goes out," Milwaukee manager Ned Yost said. "I was pleased with what he was able to do. He did a nice job of keeping them off-balance and attacking with his fastball."
Cameron, who entered the game in a 7-for-46 slump, had three hits and a walk. His two-run home run into the left-field corner in the seventh, his fifth of the season, gave Milwaukee a 4-0 lead and chased Pirates starter Paul Maholm (2-5).
Hart's third homer, a solo shot, came in the ninth.
"We swung the bats the way we're capable of swinging," Cameron said. "Now, we need to continue to work. We just needed to stop [the losing streak]. It was good for Manny to stop it."
Parra needed 116 pitches to finish his outing, but Pittsburgh could do little to take advantage. Freddy Sanchez doubled to lead off the sixth, but was stranded at third. The Pirates put two runners on base in the fourth, when Jason Bay walked and Xavier Nady singled with two outs. But Adam LaRoche struck out to end the inning.
"We've been scoring runs," Pittsburgh manager John Russell said. "It was just one of those nights where we couldn't get anything going. I can't explain it."
Bay hit a two-run home run in the ninth inning, his 10th of the season. Nady had two singles after going 2-for-21 during Pittsburgh's recent road trip.
Maholm lost at home for the first time since last July 31. The left-hander allowed four runs and nine hits and hit two batters in six-plus innings. He walked two and struck out five.
"He threw the ball well," Russell said. "On a normal night, when we're swinging the bats, he has a chance to win."
The Brewers, who put a runner on base in every inning, needed a defensive lapse by Sanchez to take a 1-0 lead in the second inning.
With the bases loaded and one out, Jason Kendall hit a ground ball to third baseman Jose Bautista that appeared to be a double play. But after taking the throw at second, Sanchez took a couple of steps toward the Pittsburgh dugout, apparently thinking the inning had ended. This allowed Kendall to reach safely and Hart to score.
"It happens," Maholm said. "He didn't give up the two-run homer. It's a non-issue."
Yost said that starters Jeff Suppan and Dave Bush will trade their upcoming turns in the rotation. Bush will move up one day and start Thursday against Pittsburgh, and Suppan will pitch Friday in a series opener at Washington. ... Cameron also had trouble keeping track of the outs. Cameron was doubled off second base by Nady to end the third when he lingered on the basepaths after Prince Fielder flied out. ... Braun is hitting .404 (19-for-47) in his past 11 games. ... The Brewers improved to 21-42 in seven-plus seasons at PNC Park. ... Eric Gagne allowed Bay's home run before being pulled by Yost with two outs in the ninth. Yost said Gagne had stiffness in his shoulder.