Feldman (2-0) did not allow a hit until two outs in the fourth, when Josh Hamilton dribbled one toward first base that went under the glove of Feldman, who charged at it off the mound.
The right-hander allowed his first run in 11 1-3 innings this season in the fifth on a groundout to second by Erick Aybar that cut the lead to 4-1.
Feldman, who was signed in the offseason by the Astros, allowed just that one run on three hits and struck out one.
Chad Qualls got the last two outs for his first save of the season.
Castro hit a two-run shot off the left-center facade in the first, and Dominguez, Guzman and Presley followed with solo home runs in the second, fourth and fifth, respectively, as Houston built a 5-1 lead.
Weaver allowed five runs on five hits with six strikeouts over 5 2-3 innings. It was the third time in his career Weaver had allowed four home runs in a game and the first since Aug. 2, 2008, against the New York Yankees.
Raul Ibanez cut the lead to 7-3 on a two-run single in the ninth off Anthony Bass, and Howie Kendrick followed with a single to chase Bass. Qualls induced a flyout from Hank Conger before Aybar cut the lead to three with a run-scoring single, but Qualls struck out Kole Calhoun to end it.
The five home runs by the Astros were the most since they hit five at the Chicago White Sox last Aug. 26.
Notes: Houston outfielder Dexter Fowler was out of the lineup for a third straight game Sunday due to gastroenteritis, which is a stomach virus. Fowler spent Friday night at Methodist Hospital and was released Saturday. Houston manager Bo Porter said Fowler was at home resting. ... Castro returned to the lineup Sunday after missing the previous two games with a bruise on his right foot. .. ''A Haunted House 2'' star Marlon Wayans threw out the first pitch. ... The Astros will send right-hander Jarred Cosart (1-0) to the mound in the finale of the four-game series Monday against left-hander C.J. Wilson (0-1) for the Angels.