Soler and Salvador Perez each had three hits and two RBI, helping Brad Keller to the win in his first major league appearance in nearly a year. Keller (1-0), who opened the season on the injured list after testing positive for the coronavirus, struck out seven in five scoreless innings.
"I didn't expect that type of command, but today I was able to command my fastball and use it to get outs," Keller said. "One thing we've tried to work on is my sliders and be more of a swingable pitch."
Kansas City finished with a season-high 18 hits. It scored a total of 14 runs during its losing streak.
"It seemed like every guy was involved and made a difference tonight," manager Mike Matheny said. "We saw a lot of guys get to two strikes and still have a good approach."
Chicago had won six in a row. Tyler Chatwood (2-1) allowed eight runs and 11 hits in 2 1/3 innings after winning each of his two starts this year in impressive fashion.
"I thought he was throwing the ball pretty good, the stuff looked good," Chicago manager David Ross said. "He had a few pitches that cost him, but some balls found some holes. Just one of those nights I feel like."
Kansas City grabbed control with nine runs over the first three innings.
Ryan O'Hearn singled in Soler in the first, and Merrifield connected for a two-run shot in the second. Franco added a two-run shot in Kansas City's six-run third, and Nick Heath doubled home Nicky Lopez for his first career hit.
Soler made it 12-0 with a solo drive in seventh against his former team.
"This stuff is contagious and we need to carry it into the next series," Merrifield said.
The Cubs signed right-hander Kelvin Herrera and left-hander Matt Dermody to minor league deals. Herrera and Dermody were assigned to the team's alternate site in South Bend, Indiana.
Herrera struggled in his first two appearances with the White Sox this year, allowing four runs in 2 1/3 innings.
The Royals optioned catcher Meibrys Viloria, outfielder Eric Mejia and right-hander Scott Blewett.
Cubs: LHP Jon Lester (1-0, 0.82 ERA) starts at St. Louis on Friday night. He has given up one earned run in 11 innings this season.
Royals: RHP Jakob Junis starts Friday night against Minnesota. In his first start of the season against the White Sox, he went 4 1/3 innings and was charged with two runs and six hits.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
World Series 2020: Tampa Bay Rays revel, Los Angeles Dodgers despair as Game 4 delivers baseball bliss
Unlikely heroes? Improbable outcomes? Saturday had it all, including a taste of baseball straight from a sandlot daydream.
World Series 2020: Why the second start of a series is Clayton Kershaw's real postseason problem
The future Hall of Famer faces a crucial Game 5 assignment pitching not just against the Rays but also his legacy of October struggles.
World Series Daily: Can Rays seize series lead over Dodgers in Game 5?
After evening the series, Tampa Bay will try to follow on its Game 4 comeback while going up against L.A.'s Clayton Kershaw.
World Series 2020: Schedules, postseason bracket, analysis and updates
All the latest information about the expanded baseball postseason.
World Series 2020: Is L.A.'s latest bullpen meltdown the start of an all-time October disappointment?
A few key bobbles weren't all that went wrong for L.A. Now the Dodgers have to shake off a historic Game 4 loss to the Rays.
World Series 2020: Inside Brett Phillips' game-winning hit off Kenley Jansen
In an epic comeback, one at-bat between an unknown bench player and Dodgers closer Kenley Jansen made the difference.