KANSAS CITY — Danny Duffy carried a perfect game into the seventh inning, Billy Butler drove in the only run and the Kansas City Royals held on to beat the Baltimore Orioles 1-0 Saturday night.
The 25-year-old Duffy (2-3) retired the first 20 batters he faced, rarely running the count to three balls and flirting with the first perfect game in franchise history. Adam Jones finally ended it with a weak groundball up the middle with two outs in the seventh.
Duffy bounced back to get Chris Davis on a fly out to end the inning, then gave up a single to Nelson Cruz to start the eighth. Wade Davis retired the next three batters, and All-Star closer Greg Holland survived a bases-loaded jam in the ninth for his 11th save.
Holland allowed a hit and two walks before striking out Cruz to end the game.
Bud Norris (2-4) allowed four hits and a walk in a 7 1/3 inning loss for Baltimore.
The lone run he allowed came in the first, when Nori Aoki led off with a single, stole second and then scored on Butler's single to center. The hit ended an 0-for-10 slump and gave Kansas City only its second run in the first three games of the four-game set.
Duffy missed most of last season while recovering from Tommy John surgery, and he began this season in the bullpen after losing the competition for a rotation spot in spring training. He was forced back into the rotation a few weeks ago when Bruce Chen landed on the disabled list with a back injury and has pitched so well that he might have claimed the spot for good.
After struggling with control most of his first three seasons, Duffy has finally started to harness his stuff. He allowed one run on two hits in four innings in his first start May 3 against Detroit and one run on two hits in six innings last week in Seattle.
He wound up losing both games when the Royals failed to score a run for him.
This time, Duffy kept the Orioles off the scoreboard entirely. He never got close to allowing a hit until Caleb Joseph hit a liner at third baseman Mike Moustakas to end the sixth inning, and Alex Gordon made a spectacular diving catch on Nick Markakis's flyball to lead off the seventh. Duffy then struck out Manny Machado before Jones delivered his single.
The crowd gave Duffy a standing ovation after the hit and then another when he exited the game. Duffy sheepishly waved his cap in appreciation as he entered the dugout.
After dealing with a stiff neck, Davis returned to breeze through the rest of the eighth.
Holland put runners on the corners with one out in the ninth, and then struck out Jones moments after manager Ned Yost was tossed by plate umpire Chris Segal for arguing what he thought was strike three. Holland walked Davis to load the bases before striking out Cruz to end it.
The Royals have had four no-hitters in franchise history, the last by Brett Saberhagen against the Chicago White Sox on Aug. 26, 1991. The Orioles have not been no-hit since Sept. 1, 2007, when Clay Buchholz accomplished the feat for the Boston Red Sox.