Soriano drove his 20th homer of the season into the center field seats at Wrigley Field with Anthony Rizzo on base and broke a 3-3 tie.
The win snapped Chicago's eight-game losing streak on a rainy Thursday night that included a delay of 1 hour, 22 minutes.
Sean Marshall (4-4) was hung with the loss after he walked Rizzo. Marshall was lifted for Logan Ondrusek, who serve up Soriano's home run.
Zack Cozart and Todd Frazier homered for the Reds, who have lost five in a row but still lead the National League Central.
Exploding whale video goes viral on Internet
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need