The right-hander retired 12 in a row after Paul Konerko snapped an 0-for-12 slump with his fourth homer leading off the second inning. Acquired in December from Tampa Bay, the 26-year-old gave up six hits and struck out two without walking a batter.
"It's a combination of not swinging the bat well and him pitching good," Chicago manager Ozzie Guillen said.
Talbot got 17 groundball outs, including two with a runner on third and Cleveland clinging to a 3-2 lead in the sixth.
Luis Valbuena hit a two-run homer in a three-run fourth and the Indians scored three unearned runs off Mark Buehrle (2-1) after an error by third baseman Mark Teahen in the sixth in a game that took a brisk 2 hours, 4 minutes.
"It hopped up more than I thought it would," Teahen said of Lou Marson's grounder that glanced off his glove and scored two runs. "It definitely didn't help."
Talbot's outing comes a day after David Huff went the distance in a 3-2 win against Texas, giving Cleveland its first back-to-back complete game victories since Chad Ogea and Charles Nagy did it in September 1996.
Talbot used a four-pitch mix to baffle White Sox hitters, retiring 21 of the last 23 batters he faced.
"He had a good sinker and cutter, threw a few sliders and a couple changeups," pitching coach Tim Belcher said. "He'd like to have one changeup back. That's the one Konerko hit."
Austin Kearns' two-out RBI single in the fourth gave Cleveland its first run off Buehrle in 18 1-3 innings, since Aug. 7. Valbuena followed with a two-run homer. He has two homers this season, off All-Stars Buehrle and Justin Verlander of Detroit. The homer off Verlander was a grand slam.
"It was a fastball," Buehrle said. "I was trying to go outside to see if he would chase or I could get a strike out there. It was on the outside corner, but it was up. It was a bad pitch."
Buehrle walked four, allowing six hits and six runs - three earned - over six innings. On opening day in Chicago, he pitched seven innings in a 6-0 win over Cleveland.