Justin Morneau and Jason Tyner hit back-to-back singles off Todd Wellemeyer (0-1) with one out in the 11th. Redmond, who hurt his left shoulder earlier in the game on Tony Pena Jr.'s backswing, then hit a line drive to right-center field to bring home Morneau.
Juan Rincon (1-0) pitched a scoreless 11th for Minnesota, which also ended a four-game home losing streak and won for just the second time in five games against Kansas City this season.
After watching Hunter get hit in the face by Zack Greinke's 2-2 fastball leading off the second inning, the Twins were fired up. Players were hopeful the victory could provide momentum and help snap their offensive slump.
"Nobody likes that to happen, and as teammates that makes us mad," Redmond said. "Fortunately for us today, we came back and got that win."
Hunter, who thought about charging Greinke before changing his mind, had three stitches to close a cut on the inside of his lip but said he plans on playing Friday night at Detroit.
Greinke hit Jason Bartlett with a pitch later in the second, drawing boos from the crowd. Twins reliever Matt Guerrier hit Royals cleanup hitter Reggie Sanders with a pitch in the seventh, and Sanders veered toward the mound briefly as he walked slowly up the first-base line -- but nothing more happened.
Greinke said he didn't intend to hit either of the batters.
"You don't want to do that ever," Greinke said about the Hunter beaning. "I just felt bad about it. He's a good guy. Everybody knows that."
Guerrier claimed he didn't hit Sanders on purpose, but then criticized Sanders for not walking straight to the base -- suggesting the veteran should have been anticipating retaliation.
"If we don't do anything about it, people are going to question that," Guerrier said.
The Twins continued to struggle at the plate, but Boof Bonser and four relievers combined to shut down the last-place Royals, who stranded 14 runners.
"We had so many chances," Kansas City manager Buddy Bell said.
The Royals wasted seven shutout innings from Greinke, who allowed four hits and walked four. He struck out one and lowered his ERA from 4.82 to 3.51.
Kansas City is looking for a breakthrough season from the 23-year-old Greinke, who spent most of last year in the minors after he underwent counseling for social anxiety.
"Zack was outstanding," Bell said. "He was working both sides of the plate."
Bonser wasn't nearly as efficient, needing 108 pitches to get through five innings. The right-hander walked a career-worst seven but tied a career high with eight strikeouts.
"It's coming around, but seven walks -- that's just not me," said Bonser, who hasn't won since Sept. 25.
Bonser walked the bases loaded with one out in the fourth but got out of the jam by getting Pena to hit into a forceout at home and David DeJesus to fly out to left field.
"He pitched out of it, but it was finger painting. It wasn't art," Minnesota manager Ron Gardenhire said.
The Twins have scored 11 runs in their last five games. They were relieved to pick up a win before heading into a series against the defending AL champion Tigers.
"Guys are getting after it as hard as they can," Gardenhire said. "Offensively, we're not quite where we want to be right now, but we got three hits in the last inning, and that's all that matters."
- Minnesota's Nick Punto was caught trying to steal in the first inning. The Twins dropped to 20-of-22 in steal attempts this season.
- This was the first start for Greinke since July 19, 2005, in which he didn't allow a run. Greinke does not have a complete-game shutout in his career.
- Kansas City's Mark Teahen, who went 1-for-4 with a walk, is batting only .132 (5-for-38) on the road this year. He's hitting .412 (14-for-34) at home.