Samardzija gave up a solo homer to Eddie Rosario in the first inning but settled down from there. He gave up just two runs on eight hits to pick up his first win since May 22.

"I was just in the zone and stayed away from their power guys," Samardzija said. "[Kennys] Vargas had a great game the other day, so I knew he was feeling good. I just didn't want to pitch into any damage."

Samardzija outdueled right-hander Mike Pelfrey, who surrendered three runs on 10 hits and three walks over 6 2/3 innings. Geovany Soto hit RBI singles in the fourth and sixth innings before Cabrera came through with a go-ahead RBI single with two outs in the seventh.

"They got a lot of hits off Mike tonight," Twins manager Paul Molitor said. "They kind of beat our defense multiple times with tendencies we were trying to play against. I don't know how many times balls went where we weren't playing. But overall, Mike did fine."

Adam Eaton gave Chicago an insurance run with a two-out RBI double off reliever Casey Fien in the eighth. The White Sox added two runs in the ninth, keyed by a throwing error from Torii Hunter in right field after a double from Adam LaRoche scored Jose Abreu, who reached on his career-high fourth hit of the game.

MOMENTS THAT MATTEREDCabrera drives in go-ahead run: With two on and two outs in the seventh, Molitor went out to talk to his starter, but whatever he said to Pelfrey didn't seem to work, as Cabrera came through with the go-ahead RBI, driving in Abreu.

Suzuki doubles, but Nunez thrown out:Kurt Suzuki gave the Twins the lead with a two-out RBI double in the fourth inning, but Eduardo Nunez was thrown out at the plate to end the inning. The White Sox executed a strong relay, with Cabrera throwing to Alexei Ramirez, who was able to get Nunez at home.

Soto ties game...twice: Soto helped bring his team back from one-run deficits against Pelfrey in the fourth and sixth innings. He drove in third baseman Conor Gillaspie in the fourth, and his two-out single in the sixth plated Cabrera.

Rosario gives Twins early lead: Rosario got Minnesota on the board in a hurry with a solo blast off Samardzija in the first for his fourth career homer. Joe Mauer and Trevor Plouffe followed with singles, but Hunter grounded into an inning-ending double play. It was another missed chance for the Twins, who went 1-for-5 with runners in scoring position.

SOUND SMART WITH YOUR FRIENDSThe White Sox have been struggling offensively but were able to translate hits to runs. This is the first time since June 13 that they scored more than three in a game. More >

WHAT'S NEXTWhite Sox:Chris Sale will take the mound on Wednesday at 12:10 p.m. CT looking for his seventh win of the season. Sale struck out 14 in his most recent start, joining Pedro Martinez and Randy Johnson as the only pitchers to strike out 12 or more batters in five consecutive outings. Sale has given up just three runs in 29 2/3 innings pitched in June.

Twins: Right-hander Phil Hughes starts the series finale on Wednesday at 12:10 p.m. CT. Hughes is coming off his best start of the season, as he gave up just one run over eight innings in a win over the Cubs on Friday. He's registered three straight quality starts.