Lorenzo Cain had a triple, double and single. But his chance for a home run and the rare cycle was thwarted in the eighth inning when he was hit on the helmet by a pitch and in the ninth when he grounded out.
Eric Hosmer and Johnny Giavotella each had three hits as well. Hosmer banged a home run in the ninth to go with a double and a single. Giavotella had a double and two singles.
Smith, who lost his two previous starts against the Twins, gave up seven hits -- all singles. He struck out seven and walked three as he ended a personal string of three losses, boosting his record to 5-7.
He kept dodging trouble. In the first inning, the fourth and again in the fifth, the first two Twins reached base and each time Smith worked out of the jam.
"I didn't have a one-two-three inning the whole time and you'd like to clean that up," Smith said. "But it's a big confidence boost to work out of jams like that."
Catcher Salvador Perez threw out a runner trying to steal in the first and fifth, the second out in each inning. Of the last 21 runners who have tried to steal against him, Perez has gunned down 11.
"That's guy's awesome, he's so good, you love having him back there," Smith said. "You feel confident that, in the running game, he's going to completely shut it down and he did tonight."
Perez's well-rounded performance also included two of the Royals' 16 hits, extending his streak to a 2012 team-best 15 games. Maybe he'll just hit in every game till the end of the season.
"That's what I'd like to do," he said with a grin.
A lost fly ball helped the Royals score three runs against Twins starter Scott Diamond in the second inning. Perez scored the first run and, with Jeff Francoeur and Hosmer on base with singles, Cain lofted what appeared to be an easy third out. However, left fielder Josh Willingham lost sight of the ball and it dropped behind him for a two-run triple.
"Just time of day. Lights had nothing to do with it," Willingham said. "It's frustrating when you can't see the ball. You can't catch it if you can't see it. You'd like for that stuff to not happen."
Ah, but Cain happily said he'd take it.
"That definitely makes you feel good when they lose it in the twilight there. A lot of guys wish for those kind of hits throughout a season and I finally got me one," he said.
Cain also doubled to start the game and had a sixth-inning single so when he came up in the eighth, he was well aware that he needed a home run for the cycle. Instead, reliever Luis Perdomo's pitch hit him on the backside of the helmet and glanced away.
"The guys definitely let me know that I was a home run away from the cycle. I was looking for a pitch to drive and ended up getting hit in the head," Cain said. "I went down for a second but I'll be fine -- bounced back up and be ready to go tomorrow."
Cain stayed in the game, and afterward had a slight headache and some soreness on the back on his head.
The scare came during the Royals' four-run eighth inning that featured Alcides Escobar's two-run triple off Alex Burnett. Then he scored on a wild pitch.
"Those four tack-on runs in the eighth were huge," Yost said. "It put the game away for us but up to that point, they're still just a couple of swings and hits away from tying the ballgame up, which can happen quick, but Will did a nice job of making sure that didn't happen."
After 107 pitches, Smith was pulled in favor of Aaron Crow, who gave up the Twins' lone run in the eighth. Louis Coleman finished up with a scoreless inning.
Cain got one last shot at the cycle in the ninth inning against Burnett.
"You're up there and swing for the gates," he said.
But he grounded into a force play to end the inning.
By then, of course, a scarce victory over the pesky Twins was virtually assured. And now the Royals are starting to feel their oats.
"Hopefully, we can win the series [Wednesday] and go for a sweep the next day," Cain said.