He still managed to hang in the game for five innings and help the Astros to a 6-5 win.
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.
Cosart (3-3) allowed seven hits, three runs and tied a season-high by walking four. Houston manager Bo Porter was impressed with how Cosart handled adversity on Saturday.
"I think that's good for his maturation," Porter said.
Cosart said he had trouble gripping the ball after the first inning and was relieved he was able to pitch as long as he did.
"It's our job just to try to keep the team in the game for as many innings as we can," he said. "Tonight I didn't have the sixth, seventh or eighth like I want. But just to get through that fifth was huge and for Bo to have confidence to leave me out there for that last batter was big."
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. Manager Robin Ventura said he took him out because he thought he looked "awkward" on his last swing and that he didn't expect him to play on Sunday.
"It's like he takes a couple steps forward, and then he takes a step back, so we took him out, and we will re-evaluate him after (Saturday)," Ventura said. "It just looked like he might do something else that would injure something else, so we took him out as a precaution right now."
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.
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. Ventura isn't sure when he'll be ready to rejoin the team.