Royals ace James Shields peered in at the Indians' Yan Gomes, who had stepped to the plate with two runners aboard in the fourth inning of a nip-and-tuck game between playoff contenders.
When Gomes swung and missed at strike three, Shields roared like a lion as he stalked off the mound, the intensity of meaningful September baseball etched across his face.
Shields wound up going six innings Monday night, and Salvador Perez led a scrappy Kansas City offense that eventually pulled away for a 7-1 victory in the opener of a pivotal three-game series.
Shields struck out a season-high 10 for the Royals (79-71), who moved within 2½ games of the AL's second wild-card berth. The Indians (81-69) remained a half-game back of Texas, which lost to Tampa Bay earlier in the night in a matchup of teams leading the wild-card race.
"Every game is important," Shields said. "This is what we live for, this is what we play for, September baseball, and hopefully we have a chance to go to the playoffs."
Shields (12-9) allowed only Lonnie Chisenhall's solo homer before turning the game over to his stingy bullpen. Wade Davis, Luke Hochevar and Tim Collins did the rest in a steady drizzle.
Perez finished with three hits and was among six different players to drive in a run for Kansas City, which is chasing its first postseason berth since winning the 1985 World Series.
"We have the talent to compete each and every night," said Lorenzo Cain, who drove in one of the runs. "You need a little luck every now and then, but we have the talent to compete.
Scott Kazmir (8-9) gave up four runs in 5-plus innings for the Indians. He didn't get a whole lot of help from his offense, which racked up a season-high 17 strikeouts.
"I did everything I could," Kazmir said. "I battled my butt off to get where I was."
Accustomed to pitching in important games, Shields kept the Indians guessing all night. He fanned three in the fifth after Chisenhall went deep, and the only other time he was in trouble was the first, when Shields stranded runners on second and third.
"He knows how to handle his emotions and channel it to his benefit, but he also knows how to transfer it to his teammates," Royals manager Ned Yost said. "He knows what's at stake and he's getting after it. He's into it."
Billy Butler started the scoring by driving in Emilio Bonifacio with a two-out single in the first, and then Kansas City tacked on another run in the third thanks to some hustle.
Alex Gordon struck out swinging but raced to first base when Kazmir's wild pitch went to the backstop. He reached third on Eric Hosmer's single and scored on Perez's two-out base knock.
"When Scott left the game, we're still in striking distance," Indians manager Terry Francona said. "We didn't finish a couple of plays and it got away from us."
That happened in the sixth, when Perez and Cain opened the inning with back-to-back triples for a 3-1 lead, and David Lough added a pinch-hit single to provide the Royals with another run.
Alcides Escobar reached base when shortstop Asdrubal Cabrera fielded his grounder and threw wide of first for an error, and then Bonifacio hit a dribbler toward Chisenhall at third that he mishandled for another error. The second in a span of three batters resulted in a 5-1 game.
The Royals added a pair of runs in the seventh inning to put it away.
"They put it on us tonight," said the Indians' Jason Giambi, who was 0 for 3 with a pair of strikeouts. "They played great baseball. They just out played us tonight."
Notes: RHP Yordano Ventura will make his big league debut for the Royals on Tuesday night in place of LHP Danny Duffy, who has inflammation in his surgically repaired elbow. Ventura was 5-4 with a 3.74 ERA at Triple-A Omaha. ... Indians RHP Justin Masterson (oblique strain) threw from 110 feet before the game. Manager Terry Francona said he's hopeful Masterson will be available down the stretch. ... RHP Corey Kluber will start for the Indians on Wednesday night.