Castro's home run came in Houston's four-run first inning. The White Sox scored two in the second and one in the third to cut the lead to one before Fowler's solo shot in the fifth inning. His RBI single in the seventh inning pushed the lead to 6-3.
Houston starter Jarred Cosart (3-3) allowed seven hits and three runs in five innings.
Kyle Farnsworth had a tough debut with the Astros after being signed Saturday. Alejandro De Aza and Gordon Beckham each had an RBI off of the veteran reliever in the eighth inning to cut the lead to 6-5.
Chicago's Hector Noesi (0-4) gave up eight hits and six runs - five earned - in six innings to remain winless in four starts and 10 appearances this season.
Abreu played designated hitter for the second straight game to rest his sore left ankle. He is 0 for 7 in this series and was replaced by pinch hitter Paul Konerko with one out in the seventh inning.
Fowler finished with three hits and rookie George Springer had two hits, including his first career triple, and an RBI.
Jose Altuve hit a leadoff single before Springer's hit sailed just over the head of center fielder De Aza for a triple to put Houston up 1-0.
Fowler walked before Castro's sixth home run this season pushed the lead to 4-0. There were runners at second and third with two outs in the inning when right fielder Moises Sierra robbed Marwin Gonzalez of a hit and likely saved a couple of runs with a nifty diving catch.
Noesi settled down after the first inning and allowed just two hits - both singles - over the next three innings before Fowler's homer with no outs in the fifth.
Adam Dunn walked to start the second inning and later scored on a sacrifice fly by Ramirez to get Chicago within 4-1. Cosart issued consecutive walks after that to load the bases. A sacrifice fly by Sierra made it 4-2, but De Aza was out at third on the play to end the inning.
Beckham doubled with no outs in the third, took second on a groundout and scored on a groundout by Abreu to cut the lead to 4-3.
Fowler's opposite field shot to the Crawford Boxes in left field to start Houston's fifth inning extended the lead to 5-3.
NOTES: The series wraps up Sunday when Houston's Brad Peacock looks for his first win when he faces left-hander John Danks. ... Chicago LHP Chris Sale, who has been on the disabled list since April 22 with a left flexor strain, allowed one hit and struck out 11 in four innings in his first rehabilitation start in Triple-A on Friday night. Manager Robin Ventura said they still aren't sure when he'll be ready to rejoin the team.