CHICAGO -- John Danks ended a subpar season with a finish he'd like to replicate.
Danks (8-12) improved to 5-0 in 12 starts against the Royals, allowing three runs and six hits in 7 1/3 innings. The lefty was 0-8 with a 5.25 ERA in his first 11 starts, then went 8-4 with a 3.69 in his last 16 outings.
"Definitely good to end on a good note," said Danks, who went 40-31 in his previous three years. "Obviously, this season hasn't gone the way I planned or hoped, but it's part of the game."
|More on Royals at White Sox|
Danks retired his first 14 batters before Salvador Perez's fifth-inning single.
"I knew I had a no-hitter going," Danks said. "A.J. [Pierzynski] and I were talking between innings, this was probably the best stuff I had all year. Everything was working."
Rios had three hits, including a two-run homer in the second and a leadoff triple in the eighth. Morel's homer was his 10th of the season, including eight in September.
While Chicago won for just the fourth time in 14 games, the Royals lost for the third time in their last 12. At 77-81, the White Sox need to win their remaining games to avoid their third losing season in eight years under manager Ozzie Guillen.
Guillen said Danks deserved a better won-loss record.
"When you manage this guy, you appreciate his effort out there," Guillen said. "No matter whether it's good or bad, he gives you what he has. His record should be a lot better than what it shows because this kid has been consistent all year long."
Chicago's Adam Dunn went 0 for 3 with a walk, leaving him with a .162 batting average. He has 485 plate appearances and needs 17 in the team's last four games to become an official qualifier. The post-1900 record for lowest batting average by a qualifier is .179 by Detroit's Rob Deer in 1991, according to STATS LLC.
Melky Cabrera had a two-run double and two hits, reaching 199 for the season.
Everett Teaford (2-1) allowed five runs and six hits in five innings after giving up one run in 11 innings during his first two major league starts.
"His command was his whole [problem]," Royals manager Ned Yost said. "He was up with everything. Two or three walks that inning turned around to bite him."
Teaford walked three in the four-run second, when Rios homered, Juan Pierre walked with the bases full and Alexei Ramirez hit a sacrifice fly.
Morel homered leading off the fourth. His second-inning walk was his 15th of September -- he had just seven this year before then.
"Being more selective up there, trying to drive the ball a little bit more," Morel said. "I'm not trying to protect so much. That's been keeping me off some of the pitcher's pitches. I'm just trying to get a ball in the middle of the plate."
Cabrera's 44th double of the season drove in two runs in the sixth, and Hosmer's RBI single cut the deficit to 5-3.
Danks hopes the White Sox can finish strong and carry momentum to next season. He hopes to see familiar faces in next year's clubhouse.
"If this same group of guys comes back next year, I'm going to be just as optimistic as I was this year," Danks said. "I thought we were the team to beat."
Alex Gordon was back with the Royals after spending Friday's game at the team's hotel because of flu-like symptoms. He was expected to play on Sunday. ... Gavin Floyd will take the mound for the White Sox in Sunday's series finale, looking to improve upon his 3-7 mark against Kansas City. The Royals will counter with Luis Mendoza, who allowed one run in seven innings Tuesday in his first big league start of the season.