"Whenever you're on a streak, you want to do whatever we can to keep it going, playing like we're playing," said Houston manager Bo Porter. "We've put ourselves in a position to win four straight against a team, and that's a strong statement."
At 3-2 in the bottom of the seventh, Castro provided some breathing room before the White Sox cut it close again in the ninth.
On a 1-2 pitch from Chicago lefty Matt Thornton, Castro poked a slicing liner that hit the foul pole in left field for a two-run shot, his 10th home run of the season. That's the most home runs by an Astros catcher since Mitch Meluskey cranked out 14 in 2000.
Both Porter and Castro credited Houston's move to the American League and the ability to use him as designated hitter for keeping the catcher fresh this season.
"It's kept me sharp, focused consistently," Castro said of his part-time DH role. "I maintain the at-bats and that freshness while breaking up the catching stuff."
Prior to Saturday's game, Castro had never hit a homer off a southpaw in his Major League career, but he's now hit one in consecutive games. He also laced a single to left field in the fifth inning.
"I'm feeling comfortable with the things I've been working on, especially with my pitch recognition," Castro said. "It's still a work in progress, but I'm starting to track those balls from lefties regularly."
Closer Jose Veras authored a bumpy ninth inning, allowing a two-out, two-run homer to Alejandro De Aza that made it three straight one-run wins for Houston. Veras got the save, though -- his third in as many games and his 14th of the season.
Keuchel dominated in the early going, setting down 15 of the first 18 batters while the Astros' offense gave him an early lead.
In the second inning, Houston loaded the bases for Matt Dominguez with one out. With his father in attendance -- he was one of the dads who threw out the first pitch during pregame Father's Day festivities -- Dominguez smoked a liner into the left-field corner, clearing the bases with a double for a 3-0 lead.
It was Keuchel's game from there, and he set the Sox down in order the next two innings.
"I felt really good in the bullpen before the game, so I kind of figured I'd be alright," Keuchel said. "The first few innings are always tough, but I knew after I got through it, if I made my pitches I'd be good."
He got some defensive help all game long, especially when Brandon Barnes robbed a potential triple or even inside-the-park homer from Dayan Viciedo with a stumbling catch on Tal's Hill in the second inning.
"I knew he'd hit it well and I was shaded a little pull, so I was just trying to get back there as quick as I could," Barnes said. "I fell into it almost. I don't want to say it was game-changing, I just think it made Dallas feel more comfortable that we could go and get those balls for him."
Keuchel ran into trouble late, surrendering leadoff triples in consecutive innings while allowing a run in the sixth and seventh.
Reliever Jose Cisnero replaced Keuchel with one out and two on in the seventh. After walking his first hitter, he navigated out of a bases-loaded jam with a strikeout and a groundout he put away himself at first.
"You want something to happen once you get the bases loaded. You put them in a vulnerable spot," said Chicago manager Robin Ventura. "You think you're at least going to get another one out of that and you don't, which is frustrating."
Cisnero has allowed just one earned run over 18 innings in his last eight outings. He has 20 strikeouts during that stretch.
"Cisnero continues to do a terrific job," Porter said. "That inning was in his pocket, his zone, and I thought he did a good job, actually making better pitches once the bases got loaded."
Keuchel, whose father also threw out a first pitch during pregame, moved to 4-3 on the season while allowing two runs, four hits and two walks on just 92 pitches.
Houston starters have now lasted at least six innings in seven straight outings and in 23 of the Astros' last 32 games.
"I've said it going back to Spring Training, it starts and ends with your starting pitching," Porter said. "You can trace wins back to that. We're ending up on the good side of games because of ours right now."