Javier Baez hit a tiebreaking two-run homer deep into Wrigley Field's left bleachers in the seventh, Addison Russell added a grand slam in a five-run eighth and the Cubs beat the White Sox 8-1 on Wednesday night.
Jason Hammel (10-5) allowed one run and five hits while striking out seven in seven innings. Hector Rondon pitched a perfect eighth, and Chapman pitched a 1-2-3 ninth - striking out Jose Abreu and Avisail Garcia - while hitting speeds of 103 mph.
Baez went deep on a full-count pitch against Anthony Ranaudo (1-1) to chase the right-hander in his White Sox debut.
Ranaudo didn't allow a hit until Kris Bryant's solo homer with one out in the sixth tie the score 1-1. Bryant's 26th homer matched his total last season when he was NL Rookie of the Year.
After Ben Zobrist's RBI double in the eighth, Russell followed two hitters later with his 12th homer to help the Cubs end a two-game slide and snap the White Sox's four-game winning streak.
Ranaudo allowed three runs and two hits - both homers - in 6 2/3 innings and smacked an opposite-field homer in the fifth for his first major league hit to give the White Sox a 1-0 lead.
The 6-foot-7 Ranaudo, acquired from Texas on May 12, was 5-3 with 3.20 ERA at Triple-A Charlotte in 13 starts. In two games with the Rangers this season, the 26-year-old righty was 1-0, but had a 17.18 ERA and walked eight.
The White Sox beat the Cubs 5-4 and 3-0 in the first two games of the crosstown series. The fourth game is Thursday night.
Ranaudo's homer was the first by a White Sox pitcher since Mark Buehrle went deep on June 14, 2009, at Milwaukee.
Chris Sale (14-3, 3.18) tries for a third time to become the majors' first 15-game winner. He'll be opposed by John Lackey (7-7, 3.79) who has dropped five straight decisions since his last win on June 8 at Philadelphia. In his last six starts, Lackey has a 6.38 ERA.