The teams split the season-opening four-game series at Busch Stadium.
Molina's second hit produced a 1-1 tie with none out and Barden, batting for third baseman Joe Thurston, drove in the winning run with a one-out single.
Winning pitcher Chris Carpenter (1-0) gave up an earned run and just one hit in seven innings with two walks and seven strikeouts. Carpenter has returned to full strength following two straight injury-plagued seasons.
Reliever Dennys Reyes earned his first save by retiring the side in order in the top of the ninth.
Pittsburgh's lone run scored on Nyjer Morgan's third inning fielder's choice groundout.
Ramon Vazquez' seventh-inning single was Pittsburgh's only hit.
Pirates' losing pitcher Ross Ohlendorf (0-1) gave up two earned runs and seven hits in six innings.