Soto's run-scoring hit in the second inning erased an early Houston lead and put Chicago ahead for good en route to a victory in the first of a three-game series at Minute Maid Park.
Silva (10-4) bounced back from two disastrous starts in which he didn't make it out of the second inning to hurl five effective frames, surrendering only one run on five hits, walking one and striking out four.
Four Cubs relievers combined to limit Houston to one run, with Carlos Marmol picking up his 19th save.
Wesley Wright (0-1) yielded four runs on eight hits for the Astros in his second major league start.
Couple mistakenly served bag of cash at McDonald's drive-thru
Beyonce flaunts bikini body, Blue Ivy in vacation pics