The four runs was more than enough for Giants' starter Jesse Foppert, who had a no hitter through the first 4 2/3 innings before giving up a single to Armando Rios.
The hit ended out to be the only one Froppert allowed in 7 1/3 innings, but five walks was enough to take him out of the game while charging him for one of the four runs the Sox scored in the seventh.
The Sox scored the runs on a Jose Valentin double, scoring Josh Paul, and an Aaron Rowand three-run homer. For Rowand, who was just recalled on Tuesday in place of Joe Borchard, it was his first homer of the season. Rowand started the season in center field for the Sox, but was demoted after 23 games and a .133 batting average.
Buehrle gave up the other half of the eight runs in the fifth inning off a two-run single by Ray Durham and two-run home run by Bonds.
Gary Glover threw an inning of relief, giving up two runs, while lefties Kelly Wunsch and Dave Sanders threw 2/3 of a scorless inning and one scoreless inning respectively. Rick White gave up one run in two innings.
The Sox combined for six hits in the game, with four coming from Rowand, Rios, Paul and Brian Daubach, who have played in a combined 89 games.
The Sox will play the final game of the set on Thursday night at 7:05 p.m. CT, with Bartolo Colon going up against lefty Kirk Rueter. The game will be televised on Fox Sports Net Chicago.