KANSAS CITY, Mo. (AP) -- Justin Ruggiano picked the scuffed-up ball off the carpet, smiled a toothy smile and proudly held it up for everyone to see in the visiting clubhouse at Kauffman Stadium.
A souvenir from his first career hit? Nope.
Just his first hit in a while.
Ruggiano snapped a franchise-worst 0-for-42 slump by hitting that ball for a single in the first inning Wednesday, and then added two more hits and drove in a run as the Miami Marlins beat the Kansas City Royals 5-2 to wrap up a winning three-game series.
"It became a mental issue. I wouldn't wish that on anybody in the world," said Ruggiano, whose last hit came on July 12. "I'm just glad it's over with. Now I can get back to doing what I do."
Ruggiano drove in the Marlins' first run, but they still trailed 2-1 when Koyie Hill doubled off reliever Tim Collins (2-6) to start the seventh. Christian Yelich then hit a grounder toward third that utility man Elliot Johnson let through his legs to put runners on second and third.
Donovan Solano and Logan Morrison followed with RBI groundouts to give the Marlins the lead.
That was enough for the Marlins bullpen. Dan Jennings (2-3) got through the sixth, A.J. Ramos worked the seventh and eighth, and Steve Cishek handled the ninth for his 26th save.
Cishek struck out Alex Gordon with runners on first and second to end the game.
"This is a resilient group of guys," Marlins manager Mike Redmond said. "They keep coming back and battling, and I think you saw some big hits by guys out there."
Solano and Morrison each finished with a pair of RBIs for Miami.
"It's always good to go out there and play well against teams that are making a push for a playoff spot," Redmond said. "That's a good feeling heading home."
Indeed, the Royals were rolling when the series began. They'd won 17 of 20 after taking the opener to climb into playoff contention, but now limp off to play five games in four days against AL Central-leading Detroit with their first defeat in eight series.
Now, the Marlins have won two straight to finish off a long road trip.
The Royals, blanked 1-0 in 10 innings Tuesday night, got off to a good start when Eric Hosmer doubled in the first inning and eventually scored on a single by Salvador Perez.
The Royals failed to take advantage of the erratic Jacob Turner, though. The Marlins starter walked six without a strikeout in five-plus innings, but Kansas City could only squeeze out one more run against him on a groundout by David Lough in the fourth.
The Marlins got their first run when Ruggiano drove in Adeiney Hechavarria in the top half of the fourth. They were otherwise hamstrung by Royals starter Ervin Santana, who dodged eight hits and two walks over six innings to hand his bullpen the lead.
The Royals' relievers -- with little help from their defense -- failed to hold on. Johnson's error turned the game, Royals manager Ned Yost said, and eventually led to the go-ahead runs.
"In Elliot's defense, it was cue-ball shot with a lot of English. It had a lot of spin on it, it hit and then boom, it stayed down," Yost said. "It changed the whole complexion of the inning."
For his part, Johnson refused to make any excuses.
"We're in the middle of the hunt and they're not going to tolerate that sort of stuff. It seems like an easy play," Johnson said. "It wasn't as easy as it seems, (but) still I should have made it. I'm playing in the big leagues and you've got to make those kinds of plays."
Solano and Morrison tacked on run-scoring singles off Luke Hochevar in the ninth, and Cishek finished up for his 21st straight save, the third-best streak in the majors.
NOTES: The Royals acquired INF-OF Emilio Bonifacio from the Blue Jays for a player to be named or cash. They made space for him on the 40-man roster by transferring INF Miguel Tejada (right calf strain) to the 60-day DL. ... Johnson went 0 for 3 for the Royals, extending his slump to 0 for 30. He doesn't have a hit since July 6. ... Turner is still winless in 12 career road starts. ... The Marlins' previous four wins this month had been shutouts.