The Diamondbacks opened the season by striking for three runs in the first against Tim Lincecum, and then surrendered the lead in the middle innings. After Ryan Roberts put Arizona back in front with a two-run double in the sixth, the Diamondbacks snuffed out a would-be San Francisco comeback in the ninth.
Putz gave up a leadoff single in the ninth, and then retired the next two batters. Pablo Sandoval doubled home a run and represented the tying score before Posey grounded out to shortstop on a 2-0 pitch.
Posey returned to action for the season-opener after missing most of the 2011 campaign with a leg injury suffered in a home-plate collision.
Arizona starter Ian Kennedy lasted 6 2/3 innings to get the victory, giving up three runs on nine hits. Lincecum allowed all five Arizona runs in 5 1/3 innings to take the loss.