KANSAS CITY, Mo. -- Ervin Santana got the victory, Greg Holland collected another save and Lorenzo Cain made the defensive highlight reels.
Santana and two Kansas City relievers combined on a two-hitter as the Royals shut out the Detroit Tigers 1-0 on Friday night.
Santana gave up two singles and walked one in 7 1/3 innings to pick up the victory.
Kelvin Herrera, who was recalled Thursday from Triple-A Omaha, got the final two outs in the eighth after Santana walked Jhonny Peralta.
Holland, an All-Star reliever, worked a spotless ninth to pick up his 23rd save in 25 chances.
"We're playing the first-place team in our division," Holland said. "If we're going to get in the playoffs, we've got to beat them."
Cain made three excellent catches -- two at the center field wall and one on the warning track -- to preserve the victory.
"Their center fielder covered a lot of real estate," Tigers manager Jim Leyland said. "We swung the bats pretty decent. Santana made some good pitches, and he made a few bad ones. We hit them hard but they ran them down.
"I didn't think any of them were going out, but I didn't think they'd all be caught. I thought a couple would get over his head. It was pretty impressive. He did a good job out there."
Cain leaped at the wall to catch Torri Hunter's fly in the first, tracked down Victor Martinez's low-trajectory scorcher to the warning track in the second and caught Miguel Cabrera's deep fly to straightaway center in the seventh.
"He was working today," Santana said. "He made some great catches."
The Royals snapped a five-game losing streak with Santana's lights-out pitching and Cain's defense.
"He made some good plays," Hunter said. "I didn't think the ball was going out, but I thought it might get over his head. But he got back on it. He did it on Martinez, mine, Cabrera.
"He can make some plays. He definitely saved them today. That's awesome. When a guy makes a play like that, it pumps up the whole team, and then Santana did his thing."
Kansas City scored the only run in the first. Alex Gordon led off with a smash single that second baseman Ramon Santiago got a glove on but could not stop. Gordon stole second with one out and scored on Billy Butler's ground ball single up the middle.
"You don't expect to come into a game expecting to shut them down," Butler said. "It doesn't happen."
After Tigers starter Anibal Sanchez walked All-Star catcher Salvador Perez, he coaxed Mike Moustakas to roll into an inning-ending double play.
"He (Sanchez) got a slider up," Butler said. "It wasn't where he wanted to put it, especially on an 0-2 count."
Sanchez, who was making his third start since coming off the disabled list with a right shoulder strain, pitched out of danger in the second. Cain began the inning with a single and rookie David Lough bunted him to second. Cain went to third on an Alcides Escobar ground out. Chris Getz walked and stole second, but Sanchez retired Gordon on a grounder to Prince Fielder to end the threat.
"His control was a little rusty," Leyland said. "A 1-0 ballgame, obviously he pitched well. I didn't think his control was real sharp. Holding them to one, that showed you what a good pitcher he is. They hit some balls hard at some people."
Santana, who gave up eight runs, 10 hits and three walks in his previous start against the Yankees, retired the first 10 batters before Hunter singled in the fourth.
The only other hit Santana allowed was Alex Dirks' fifth-inning two-out single. Dirks, however, was thrown out by Perez trying to steal second.
Then Santana turned over the one-run lead to his bullpen with one out in the eighth.
"Why not? I trust them," Santana said.
The Royals snapped a five-game losing streak.
"We kinda had a sour taste in our mouths going into the break," Holland said.
NOTES: Missouri RB Henry Josey, who missed last season with a knee injury, threw out the ceremonial first pitch. Royals RHP Aaron Crow, who went 13-0 with a 2.35 ERA as a Missouri junior, was Josey's catcher. ... Tigers IF Omar Infante, who is on the disabled list with a left ankle sprain, will join the team on Saturday for evaluation. He has been working out at the Tigers' complex in Lakeland, Fla. ... Butler is a career .421 hitter against Tigers RHP Justin Verlander, who starts Saturday.