Rios drove in three runs for the White Sox, who won back-to-back games for the first time since April 25 when they swept the Seattle Mariners. Chicago has only won consecutive games three times this season.
Floyd (2-4) came in the game, allowing five runs or more in each of his last three starts, but he had his best outing of the season against the Marlins. He allowed just one run and six hits.
Floyd was backed by a strong White Sox bullpen. J.J. Putz got two outs in the seventh and Sergio Santos pitched a scoreless eighth inning.
White Sox closer Bobby Jenks ended the game with a perfect for his seventh save in eight chances.
Santos has not allowed a run in 16 of his 17 appearances. He's has been surprise for the White Sox, who converted him to a pitcher from shortstop last season after seven years as a position player in the minors.
Chicago improved to 130-101 record in interleague play.
In its last six road games, Florida has been held to three runs or fewer five times. The Marlins ended a 22 inning scoreless inning drought on Cameron Maybin's RBI single in the seventh inning.
Marlins starter Chris Volstad (3-5) gave up three runs over six innings. He struck out four and walked three.
Gordon Beckham reached on an infield hit in the third inning and stole second. After Beckham took third on a wild pitch, Rios hit a two out RBI single.
Mark Teahen doubled to the left-center warning track with two outs in the fourth inning, but was thrown out at the plate by left fielder Chris Coghlan when trying to score on Ramon Castro's single.
Volstad hit Beckham with a pitch in the fifth inning, two outs later, Rios homered to left to put the White Sox ahead 3-0.
Chicago got an insurance run in the eighth on Carlos Quentin's RBI double off Florida reliever Renyel Pinto.
NOTES: Blackhawks defenseman Brent Seabrook, who watched the game from suite, got a nice applause when he appeared on the Jumbotron in the sixth inning. The Blackhawks are one win away from clinching a berth to the Stanley Cup Finals for the first time since 1992. ... White Sox C A.J. Pierzynski had the day off.