HOUSTON (AP) -- The Chicago White Sox lamented their inability to make plays in crucial situations after losing three straight games by one run each to Houston.
They finally found a way to capitalize when they had a chance to change the game Monday night and it led to a 4-2 win over the Astros.
Dayan Viciedo's bases-loaded triple in a four-run sixth inning helped the White Sox snap a four-game losing streak. They also avoided being swept in a four-game series for the first time since 2008.
Chicago trailed 2-0 before Alejandro De Aza singled in the sixth and went to third on Adam Dunn's two-out single. Paul Konerko pulled Chicago to 2-1 with an RBI single that went between the legs of starter Bud Norris and into center field.
Conor Gillaspie barely beat the throw to first on an infield single that loaded the bases. That brought up Viciedo, whose triple landed on Tal's Hill in center field just out of the reach of a diving Brandon Barnes. All three runners scored to put Chicago up 4-2.
''It was a good one for Viciedo to get a hit,'' White Sox manager Robin Ventura said. ''It's just one of those that you hope gets him going a little bit because he's been missing out. And to finally get it, with him doing it, it's good to see.''
It was the second straight game with a triple for Viciedo, making him the first White Sox player to do that since Mark Kotsay in August 2010.
''There's been some rough spots where things haven't gone the right way,'' Viciedo said through a translator. ''But I feel like there's some good things, too, and I want to work on the good things I'm doing right now. I want to concentrate on those things and become more consistent.''
Nate Jones (3-4) allowed three hits in 1 1-3 scoreless innings for the win. He struck out three.
Addison Reed pitched a perfect ninth for his 20th save.
White Sox starter Jose Quintana yielded five hits and two runs in 4 2-3 innings, but didn't factor in the decision for the fourth straight start. He has a no-decision in nine of his 14 starts this season.
Jason Castro doubled twice and drove in two runs for the Astros, who had won four straight. Barnes had three hits.
Norris (5-7) allowed eight hits and four runs over six innings in his third consecutive loss.
''I was in a groove, and that sixth inning was very frustrating,'' he said. ''I'm still frustrated about it.''
It was a rare road win for the struggling White Sox, who have dropped 12 of their last 14 away from Chicago and 14 of 19 overall.
The Astros had runners at the corners with no outs in the seventh after back-to-back singles by Barnes and Jose Altuve. But Matt Thornton struck out Castro before Jesse Crain fanned J.D. Martinez and Chris Carter to end the inning.
Carter struck out twice to give him 101 this season, which leads the majors. The Astros struck out 12 times in all to extend their total to a major league-high 673.
Crain struck out three in 1 2-3 innings for his career-high 27th straight scoreless appearance to tie a franchise record for relievers.
He was just happy to help the team end its skid.
''We needed to turn things around,'' he said. ''Obviously, we've been struggling and getting this one and avoiding the streak was big and hopefully we start a new win streak and win tomorrow.''
Ventura raved about Crain.
''It's not just easy situations going in there mopping up,'' he said. ''He's been coming into some real tough situations and coming through for us. It's amazing what he's been doing. I think he's just been locked in, healthy and everything else.''
Altuve singled with one out in the first and scored on a double by Castro to make it 1-0.
Quintana pitched a 1-2-3 second inning before getting into trouble in the third. Barnes singled to start the inning before stealing second base and advancing to third on an error by catcher Hector Gimenez with one out.
Castro's second double, which bounced off the wall in right field, sent Barnes home to extend the lead to 2-0. Castro has five RBIs, two doubles and two homers in the last three games.
Norris looked good early. He allowed a double to Alex Rios with two outs in the first before retiring the next eight batters. Rios singled with one out in the fourth and stole second, but Norris set down the next two batters to end the threat.
NOTES: Houston activated OF Justin Maxwell from the 15-day disabled list and optioned OF Jimmy Paredes to Triple-A Oklahoma City after the game. Maxwell, who has been out since April 24 with a broken left hand, will be in Tuesday's lineup. ... Chicago's Dylan Axelrod opposes Minnesota's Mike Pelfrey when the White Sox open a three-game series against the Twins on Tuesday. ... Jordan Lyles is scheduled to pitch for the Astros on Tuesday when they open a series with Milwaukee. Right-hander Alfredo Figaro is set to pitch for the Brewers. ... The Astros signed second-round draft pick RHP Andrew Thurman and four other picks on Monday. Thurman was at Minute Maid Park and worked out with the team before the game. Houston also signed 28th-round pick LHP Jordan Mills, 30th-round pick RHP Jorge Perez, 33rd-rounder 1B Tyler White and J.D. Osborne, who was selected in the 36th round.