KANSAS CITY, Mo. -- For the majority of this young season, the Orioles' vaunted offense — which led the major leagues in home runs last year and then added slugger Nelson Cruz this offseason — has failed to live up to its advanced billing.

On Saturday, in a 1-0 loss to the Kansas City Royals, the Orioles' offensive struggles nearly took a historic turn.

Royals left-hander Danny Duffy retired the first 20 batters he faced and was just seven outs away from pitching the first perfect game against the Orioles in modern franchise history.

Ultimately, that didn't happen. Center fielder Adam Jones smacked a single up the middle with two outs in the seventh to ruin Duffy's chance at baseball immortality.

“I heard somebody say, ‘This is the type of feel for a perfect game,' ” Orioles rookie catcher Caleb Joseph said. “And then right after that someone said, ‘Jonesy is about to rip one right here.' And you could just feel it.”

Jones, who was 0-for-2 before that at-bat, said he didn't make it a personal mission to break up the perfect game.

“I don't care about all that,” Jones said. “But I just don't want to see it done against my team.”

The Orioles (22-19) avoided infamy but still managed just three total hits, their fewest in 41 games this season. It was the third time they've been shut out this season and the second time by the Royals (21-21).

Perhaps more concerning: The Orioles now have scored three runs or fewer in 12 of their past 20 games.

“It's just a matter jelling as a group,” said bench coach John Russell, who was acting manager Saturday while Buck Showalter attended his daughter's law school graduation in Texas. “We've shown signs of it, but we just haven't really clicked at all together. It's going to happen. We have too many good offensive pieces in our lineup for it not to happen.”

Russell said he didn't sense any panic in the visiting dugout as Duffy, 25, kept mounting out after out.

“This bunch, they don't worry about that,” Russell said. “It's not a panic mode with them. They kind of kid around with each other, and they know sooner or later, with our lineup, somebody is going to get a hit.”

It nearly occurred in the top of the seventh, when Nick Markakis hit a sinking liner to left field that Gold Glover Alex Gordon snagged while diving. It looked like one of those amazing plays that is continually talked about after a historic outing.

It never got that far, though. Duffy (2-3) picked up the final out of the seventh and then left to a standing ovation from the announced 24,064 after he allowed a leadoff single to Nelson Cruz in the eighth.

“He was on a roll. Duffy was good,” Jones said. “You've got to give credit to the man. He dealt.”

Thanks to a tremendous outing from starter Bud Norris (2-4), the Orioles trailed by just one in the top of the ninth and were in a position to rally against Kansas City closer Greg Holland.

Markakis drew a one-out walk and Manny Machado followed with a single. After Adam Jones struck out — in an at-bat during which Royals manager Ned Yost was ejected for arguing that Jones did not tip a potential third strike —Chris Davis walked to load the bases.

But Holland fanned Cruz for his 11th save.

“We set it up the way we needed to. Chris gets the big walk,” Russell said. “We were right there, we were one swing away from really making that game ours.”

Instead, the Orioles made a tough-luck loser out of Norris, who allowed four hits, one walk and one run in 7 1/3 innings to lower his season ERA to 3.58. He has now thrown 15 innings in his last two starts — even after leaving prematurely Monday when he was ejected after hitting the Detroit Tigers' Torii Hunter in the eighth.

“I'm in a good place. This is a great team and a great organization, and I'm just excited about playing meaningful ballgames every day,” Norris said. “I just want to go out there and keep pitching and playing. And I'm enjoying this and let it keep rolling.”

The Orioles hadn't lost 1-0 since Sept, 20, 2008 at old Yankee Stadium when Alfredo Aceves and Brian Burres traded blanks until the Yankees scored a walk-off win against Jim Miller in the ninth.

“We lost. Doesn't matter how you lose, 50-1 or 1-0,” Jones said. “A loss is a loss and they all [stink]. But give some credit to the other side. But we can take the lead in the series 3-1 ]on Sunday], so no need to cry about it.”

The Orioles will face Royals ace James Shields on Sunday in an attempt to win the four-game series. It will be another difficult challenge for an offense that has plenty of firepower but is third-to-last in the American League in runs scored.

“We are looking for that offensive game where we come out and swing the bats very well. I think we are getting really close,” Russell said. “Look at our guys. Look at the track records and you can't hold us down much longer. It's just a matter of getting it going. And when we do, it should be fun to watch.”

dan.connolly@baltsun.com

twitter.com/danconnollysun