Rios racked up three hits in a game for the first time since April 12, igniting the Royals in the ninth inning by leading off with an infield single that he narrowly beat, and then scoring before closer Trevor Rosenthal recovered for the save.
"We knew it would take him some time after breaking his hand, but our hope was that he would get back to where he was after Spring Training and he sure has," Royals manager Ned Yost said.
Batting sixth in the lineup, Rios extended Kansas City's first-inning lead to 2-0 with a single off Cardinals starter John Lackey. Rios followed that by flashing his power with a one-out double in the fourth.
It was Rios' sixth double in his last 11 games after posting just two in 25 games in June. He has hit safely in 11 of his last 12 games and is batting .429 over that span.
"Playing consecutive games, when you play that many games in a row, you get to see the ball better and you get to do different things in certain ways, and I guess that's what I'm doing right now," Rios said. "I'm focusing on seeing the ball and getting a good pitch to hit, and putting a good swing on it."
Rios also showed off his legs and his leather with a sliding catch in right field against the wall in foul territory in the eighth inning to retire Yadier Molina.
"I thought I had a chance to get that ball, and I went for it," Rios said. "Fortunately I made the catch. Any time you get a chance to do stuff like that, you have to at least try to make those plays."
David Cobb is an associate reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.