KANSAS CITY, Mo. -- The crowd at Kauffman Stadium greeted the ending of the frame with silence, perhaps too stunned to jeer, so brief and so free of drama were the proceedings on the field. The seventh inning of a 2-1 Royals loss lasted a mere four pitches, and still cracked a window into the primary weakness of this club, a team producing little power and practicing scant patience.

This is how the purported heart of the Royals order fell: Salvador Perez popped up the first pitch he saw, a slider from Minnesota starter Kyle Gibson. Alex Gordon failed to hold off on a check-swing and tapped a grounder back to the mound. As he has so often this season, Billy Butler slapped an inside fastball into the ground for the last out.

On the doorstep of the final two months of the most highly anticipated Royals campaign in 20 years, the team offered up one of their weakest performances in 2014. The lineup managed a mere two hits and never advanced a runner to third base in Gibson's seven innings.

Even a ninth-inning rally fizzled in rapid order. The team fashioned a run on a double by Omar Infante and a single by Eric Hosmer. Seven pitches later, All-Star closer Glen Perkins collected a save. Afterward, manager Ned Yost lacked a solution for his club's chronic woes.

"Guys are what they are," Yost said. "You're not going to say 'OK, take more pitches.' That doesn't work. They play their game. Nights like tonight, when a guy's on his game, you're going to get what we got tonight."

Gibson is a lanky right-hander with an effective sinker, but he is far from a force. In two of his last three starts, he yielded six runs apiece. Yet the Royals (53-52) swung early, often and without effect from the start.

In the aftermath, Yost appeared more upset with the umpires than with his moribund offense. He raged about a disagreement he had over an interference call in the fifth. For his hitters he only offered bromides amid praise for Gibson.

"When he's on his game," Yost said, "he's tough."

"He was running fastballs in on righties and just keeping us off balance," Butler said.

"He has a really good two-seamer and a slider," said Lorenzo Cain, who did double off eighth-inning reliever Casey Fien. "When I was swinging, I felt like it disappeared."

James Shields faced a lineup with a contrary plan. Shields required 124 pitches, the most he has ever thrown as a Royal, to finish six innings. He matched a season-high with four walks issued. The Twins confronted him with fusillade in each inning, and he did not escape unscathed.

"We got out-pitched and out-played," Shields said. "That's about all I've got to say about it."

Except Shields did not end there. He offered repeated praise for the patience of his opponents, a quality rarely practiced by his own team. The Twins, he said, "do a good job of working the count, getting deep in the count, and really making the starting pitcher battle."

Shields let the Twins extend at-bats all night long, and the third inning was taxing for him on both a psychic and physical level. He allowed a run when Danny Santana nubbed an infield single that Eric Hosmer could not scoop in time. Shields threw away a pickoff attempt, letting Santana take second. Josh Willingham plated Santana with a sacrifice fly, but only after Shields absorbed a line drive off his backside struck by Sam Fuld.

Minnesota chipped away at Shields again in the fifth. Santana one-hopped a one-out double past Hosmer, and Fuld shot a single into left field.

With runners at the corners, the defensive alignment pulled Mike Moustakas to the edge of the infield grass. He was ill-positioned for the chopper hit by second baseman Brian Dozier. The ball skidded underneath his glove, and Santana scored for the second time.

"I didn't have my best stuff out there today," Shields said, and Yost referred to him as "a bit erratic."

After Dozier's hit, Shields looked wobbly, and on the verge of ruin. He hit Willingham with a fastball to fill the bases. Salvation finally arrived in the form of an 87-mph cutter. The pitch missed the barrel of Parmalee, who grounded into a double play.

In the bottom of the frame, the Royals mounted their first attempt at a rally. At least, this is what passed for a rally: Gordon worked a one-out walk. Running on the pitch, he prevented Butler from hitting into a double play. With two out, Moustakas accepted a free pass on four pitches.

It was up to Cain. Once he was the team's most productive hitter. Now he lugged a .240 batting average in July with him to the plate. Gibson threw him four sliders. Cain swung at three, and fouled back the last into Suzuki's glove for the final out.

The crowd enlivened at last in the ninth. Infante and Hosmer nudged the door open. But Perez lined out to left. Perkins, a southpaw, overwhelmed Gordon with sliders for a four-pitch punchout. Once more Butler hacked at the first pitch. This one whistled softly into Dozeri's mitt to end the game.