Ryan Vogelsong won his fourth straight decision, Buster Posey scored the go-ahead run on a double-play groundball by Joaquin Arias in the seventh inning and the San Francisco Giants beat the Chicago Cubs 3-2 on Monday for a four-game sweep.