Chase Headley doubled home San Diego's lone run in the first inning, giving the Padres a start toward what could have been only their second win in 14 games.
San Diego, however, wound up with just five hits against four Giants pitchers.
San Francisco, meanwhile, produced a 17-hit attack and poured it on late in the game to win its second straight.
Posey's sacrifice fly in the third inning tied the game and he contributed a two-run single during a three-run sixth. San Francisco then sent 10 men to the plate while scoring five times in the seventh with Posey contributing a two-run double in the inning.
Marco Scutaro had RBI singles in both the sixth and seventh.
Chad Gaudin (3-1) picked up the easy win by holding the Padres to a run on three hits in five innings.
Sean O'Sullivan (0-1), starting for the first time in what is his fourth major league season, allowed two runs on six hits in five frames to take the loss.
Couple mistakenly served bag of cash at McDonald's drive-thru
Beyonce flaunts bikini body, Blue Ivy in vacation pics