The Sox had a 4-1 lead three innings earlier when four singles off reliever Tom Gordon scored two and put men on second and third. Damaso Marte relieved Gordon and gave up a sacrifice fly to Josh Bard, scoring the tying run.
Gordon came in to pitch in the seventh inning after starter Mark Buehrle put two men on with one out. Brandon Phillips grounded into a double play to end it.
Buehrle, who hasn't won a game since April 10 (10 starts, 0-7), gave up one run on six hits and two walks in 6 1/3 innings. Buehrle struck out four and threw a 110 pitches, lowering his ERA to 4.72.
With the game tied 1-1 after two innings -- the Sox scoring on a Joe Borchard sacrifice fly and the Indians scoring on double play groundout -- D'Angelo Jimenez hit a solo homer in the third to regain the lead. Jimenez went 2-4 with two RBIs.
Jimenez' second RBI came as the first of two key insurance runs in the eighth, with a RBI-sacrifice fly, scoring Miguel Olivo, who doubled before reaching third on a passed ball. Carlos Lee, 1-4, then walked, stole second and finally scored on a Frank Thomas double down the left field line.
Indians' starter Jason Davis was charged for the first run with reliever David Riske allowing the second.
Marte gave up no runs in 1 2/3 innings of relief, while Billy Koch was on the mound for the game-winning run, throwing 2/3 of an inning. The baserunners reached in the 10th inning off an Omar Vizquel single, Ellis Burks softly-hit infield single and intentional walk to Josh Bard two outs later.
Paul Konerko continued his struggles offensively, going 0-4 with three men left on base. He is now batting .201. Magglio Ordonez went 0-5, Joe Crede went 0-3, while Borchard and Olivo each had a hit. Valentin went 2-3 with a walk, RBI and a run scored.
With Saturday's game being rained out and no makeup date scheduled, the two teams will play the third and final game of series Monday at 11:05 a.m. CT. on Fox Sports Net Chicago. Bartolo Colon will go up against lefty Brian Anderson.