Sano's bomb traveled 428 feet to left field. It was his 16th home run of the season.
After being no-hit for the first five innings, the Twins finally got something going against Kansas City starter Chris Medlen. Kurt Suzuki put and end to that with a solo home run – his fifth of the season.
Ben Zobrist responded in the bottom of the inning with a solo home run, cutting the Twins lead in half.
It was Zobrist again in the eighth, he led off the inning with a triple, scored on a sacrifice fly from Lorenzo Cain.
The Royals had a big threat in the 10th, with runners on second and third, Cain hit a grounder back to Blaine Boyer when his throw home sailed up the line and caused a collision between Ja'Rod Dyson and Suzuki.
Dyson was out, but Suzuki had to leave the game.
Twins starter Mike Pelfrey pitched pretty well. He went 5 1/3 innings giving up one run on five hits, while striking out one on the night, in a game where his back was against the wall.
Boyer (3-4) threw 1 2/3 perfect innings out of the bullpen for the win. Kevin Jepsen put the game away in the 12th inning with his 12th save.
Ervin Santana (4-4) will start for the Twins on Friday against Chicago's Erik Johnson.