Maholm (2-0) pitched seven innings, allowing four hits. The left-hander, who worked around three walks, two hit batters and a balk, lowered his ERA to 0.87 in winning his first home start of the season.
John Grabow allowed two hits in the eighth inning, and Matt Capps pitched a perfect ninth for his third save.
Nate McLouth hit a two-run homer and Freddy Sanchez added two hits for Pittsburgh.
Jair Jurrjens (2-1) struck out seven in 6 2/3 innings for Atlanta, allowing one run and four hits. Jeff Francoeur had three hits and is batting .526 (10-for-19) over his past five games.
The Braves' best scoring chance against Maholm came in the second. Brian McCann was hit by a pitch to lead off the inning, and Francoeur and Martin Prado singled to load the bases.
But Casey Kotchman was called out on the infield fly rule after his popup was dropped by catcher Ryan Doumit, and Jordan Schafer bounced into a 1-2-3 double play.
Maholm also got Omar Infante to fly out to right with two outs and runners on first and second in the fifth. He improved to 12-3 in his past 23 starts at PNC Park dating to 2007.
Andy LaRoche drove in Pittsburgh's first run with a groundout in the second and McLouth hit his third homer off Mike Gonzalez in the eighth to make it 3-0.
This was the first of a nine-game road trip that will also take Atlanta to Washington and Cincinnati before the Braves return home April 27 against St. Louis. After today's 12:35 p.m. start, the Braves and Pirates close out the series with a 1:30 p.m. game Sunday.