Anthony Rizzo and Starlin Castro each clubbed two-run homers for the Cubs, who snapped a four-game losing streak with a 15-hit attack. They had been held to four hits in each of the first three games of this four-game home-and-home set.
Rizzo finished 3-for-5 with a walk and scored three runs, while Olt, Ryan Kalish, Nate Schierholtz and Junior Lake all had two hits.
Cubs starter Jake Arrieta labored in his second outing after beginning the season on the disabled list, allowing four runs -- three earned -- on nine hits in four innings. Relievers Brian Schlitter (2-0), Zac Rosscup, Neil Ramirez, Justin Grimm and Wesley Wright combined to limit the White Sox to a run and four hits in the final five frames.
Alexei Ramirez collected four hits and Tyler Flowers knocked in two runs for the White Sox, who had their season-high winning streak come to an end at four games.
Scott Carroll (1-2) struggled for the White Sox as he was tagged for six runs and 11 hits in four-plus innings. He had allowed just one earned run in his first two career starts.