Cleveland got its first hit of the game against Bruce Chen in the fifth inning, but Kluber and two relievers made sure a three-run seventh was enough. Carlos Santana had an RBI single before Bourn came up his clutch swing.
Kluber (7-5) allowed three hits and struck out eight in 7 2-3 innings. The right-hander, a bright spot in a rotation that's struggled most of the season, worked out of a bases-loaded, one-out jam in the fifth.
"He certainly stays composed," Indians manager Terry Francona said. "For a young pitcher, that's a big compliment."
Allen was subbing for regular closer Chris Perez, who had appeared in five of the previous six games. Perez was on the disabled list from May 27 to June 26 with a sore right shoulder and missed time in spring training because of the injury.
Allen knew before the game that Perez was unavailable but wasn't sure if he would get the call in the ninth.
"I thought it was going to be Joe," Allen said. "I knew the possibility was there."
Composure was also a key for Allen. After allowing two singles, he walked pinch hitter George Kottaras but struck out Dyson to end the 32-pitch inning.
"I was trying to make one good pitch at a time," Allen said. "Obviously, I didn't want to get into a bases-loaded situation but that's where I was."
Chen pitched six innings of one-hit ball in his first start of the season. Santana's leadoff double in the fifth was Cleveland's only hit off Chen, who struck out four and walked one while throwing 97 pitches.
Santana then lined a single to center. Dyson charged the ball and made a strong throw home but Kipnis slid around catcher Salvador Perez's tag and touched the plate with his left hand.
Mark Reynolds, mired in a 2-for-31 slump this month, reached on a bunt hit to the left of the mound to load the bases. Bourn, batting for Ryan Raburn, then singled to right-center to give Cleveland a 3-0 lead.
Reynolds is known for putting up big home run and strikeout numbers, making the bunt quite the play at the time.
"That caught everybody on the Royals, in the stands, in the press box and me by surprise, but it might have won us a game," Francona said.
Kluber got out of big trouble in the fifth. David Lough started the inning with a triple but held at third when Alcides Escobar grounded out to second. Elliot Johnson walked and stole second before Dyson walked.
Kluber has been able to pitch out of several jams in his 15 starts in his first full season in the majors.
"I stepped back and took a deep breath," he said. "All I can do is calm down, execute pitches and get out of it."
Gordon drew a one-out walk in the eighth. Kluber, who won for the fourth time in his last five decisions, was removed after striking out Hosmer and received a loud ovation from the crowd of 24,077.
Chen replaced struggling right-hander Luis Mendoza in the rotation. Chen was 3-0 with a 2.41 ERA in 19 relief appearances before being moved to the rotation.
"I did everything I could to help us win, but Kluber was just a little bit better," Chen said "Sometimes you have to give credit because he made some great pitches and pitched out of some tough situations."
- The Indians optioned RHP Danny Salazar to Triple-A Columbus a day after he won his major league debut by allowing one run in six innings against Toronto on Thursday. RHP Chen-Chang Lee was called up from the Clippers.
- Royals SS Alcides Escobar batted seventh for the first time this season. He has hit second 67 times, ninth 13 times, and atop the order four times. "He'll be back in the two-spot tomorrow with a lefty starting, but he struggles against right-handed pitchers, so we're going to vary where he bats from day to day," Royals manager Ned Yost said. Escobar is hitting .302 against left-handed pitchers and .222 against righties.
- Bourn wasn't in the lineup against Chen. Michael Brantley batted leadoff.
- Indians RHP Zach McAllister (sprained middle finger) will make a rehab start at Double-A Akron on Saturday.
- Royals RHP Jeremy Guthrie (8-6) takes on Indians LHP Scott Kazmir (4-4) in the second game of the three-game series Saturday.