Bonderman (9-4) struggled to the win for the Tigers, who own baseball's best record at 60-29.
"I knew that if I kept it close ... I knew the team wasn't going to go away and would fight," Bonderman said.
Bonderman allowed four runs and seven hits in 5 2/3 innings, walking a season-high five and striking out eight.
"I wasn't able to get in a good rhythm tonight," Bonderman said. "I got into and out of rhythm."
Jason Grilli replaced Bonderman with two on and two outs in the sixth and retired Graffanino on a grounder.
"Lost in the ballgame was Grilli coming in to get a big out," Detroit manager Jim Leyland said. "That might've been the biggest out of the game."
Fernando Rodney worked around two hits in the seventh, Joel Zumaya pitched a scoreless eighth and Todd Jones finished for his 24th save in 27 opportunities.
"Mistakes," Royals manager Buddy Bell said. "And then once you get in their bullpen, it's pretty tough."
Kansas City starter Brandon Duckworth (1-2) allowed six runs -- three earned -- and six hits in 4 2/3 innings, walking two and striking out three.
"I felt good, especially in the fifth inning," Duckworth said. "I just got behind in some counts and put myself behind the eight-ball and had to make better pitches. They were swinging the bat and they do what they do."
Duckworth didn't allow a hit until the fourth inning, when Curtis Granderson led off with a single. He was erased when Placido Polanco grounded into a double play, but Rodriguez then homered into the left-field stands, his eighth of the season, to make it 4-1.
Things fell apart for Duckworth in the fifth when Detroit scored five runs to drive him from the mound.
With one out, singles by Marcus Thames, Craig Monroe and Chris Shelton loaded the bases. Brandon Inge then singled to cut the lead to 4-2 and Granderson's groundout plated another run.
Polanco then hit a grounder to third, which Teahen bobbled and then threw wildly to first base, allowing two runs to score and giving the Tigers a 5-4 lead.
"We should have been out of the inning," Teahen said.
Duckworth then walked Rodriguez and was removed in favor of Todd Wellemeyer, who allowed an RBI single to Magglio Ordonez, the first batter he faced.
Kansas City took a 1-0 lead in the first on Graffanino's one-out home run. The Royals made it 2-0 in the second when John Buck's single with one out through a drawn-in infield scored Teahen, who had led off with a triple.
Teahen gave Kansas City a 4-0 lead in the fourth with a two-run homer. His eighth of the season followed Emil Brown's one-out double.
- The Royals reinstated RHP Mike MacDougal from the 60-day disabled list. He has not pitched this season after straining his right shoulder during spring training.
- Rodriguez is hitting .355 (192-for-540) in his career against Kansas City with 18 home runs and 84 RBI.
- Kansas City INF Mark Grudzielanek (back) and 1B Doug Mientkiewicz (back) both missed the game and are day to day.
- About 50 players, including Royals fan Tom Watson, and Champion Tour officials attended the game, a short drive from the TPC of Michigan, where the Senior Players Championship began Thursday. Chi Chi Rodriguez visited the Tigers' clubhouse and Leyland's office after the game.
- Detroit is the 10th team in the last 30 seasons to win 60 of its first 89 games.