There were runners at first and second with two outs in the 11th when Soto's double off Tony Sipp dropped in front of the wall in right field to put Chicago up 5-3. Soto entered the game in the eighth inning for an injured Jose Abreu.
Adam LaRoche followed with an RBI single to push the lead to 6-3.
Josh Fields (2-1) walked two in 1 1/3 innings for the loss. He was replaced by Sipp after a one-out walk in the 11th inning.