ARLINGTON, Texas -- Ian Kinsler was caught stealing two innings earlier, but that didn't change his approach on the front end of a double-steal in the seventh.
Kinsler had three hits and two RBI for Texas, which won for the eighth time in the last 10 games.
With the game tied at 6, the Rangers executed the double-steal with Kinsler on second and Michael Young on first. Kinsler scored when catcher Jason LaRue threw wildly past third baseman Alex Gordon for an error.
"You can't be scared of getting thrown out," said Kinsler, who had 17 straight successful steals before he was caught on consecutive attempts. "I felt I could make it. You're not going to steal a base if you don't try."
Royals manager Buddy Bell said his team made several mistakes on the double-steal.
"First, a good throw and (Kinsler) is out," Bell said. "Second, we can't allow the ball to go into left field. Third, we've got to pay more attention to the runner. So you can't blame just one guy."
Jason Botts, who had three hits to tie a career high, drove in Young from second with a single off Leo Nunez (2-3) later in the seventh to give Texas an 8-6 edge.
Botts started the night in a 4-for-32 slide that sent his average to .202.
"He needed a game like this," Rangers manager Ron Washington said. "Tonight he showed some bat speed. It's good for his confidence."
John Rheinecker (2-1) pitched a perfect seventh to pick up the victory, and C.J. Wilson yielded a run while getting the last two outs for his 11th save in 12 chances.
Mark Grudzielanek's eighth-inning RBI single off Frank Francisco pulled the Royals within one, but Joaquin Benoit got Ross Gload to ground into an inning-ending double play with the tying run on third.
Marlon Byrd's sacrifice fly in the eighth extended Texas' lead to 9-7.
"That run we gave up there in the eighth, that was the toughest one of the night," Bell said.
Brad Wilkerson and Jarrod Saltalamacchia homered to key a five-run first inning for the Rangers, but the Royals rallied from a five-run deficit to tie in the fifth of a game played in steady rain.
Jason Smith hit a three-run homer and matched a career-high with four RBIs, and Mike Sweeney had three hits for the Royals.
Billy Buckner, making his first major league start, had a wobbly first inning when he walked Frank Catalanotto leading off. Kinsler followed with an RBI double, extending his hitting streak to 10 games.
Botts' double knocked in Kinsler, then Wilkerson's drive just cleared the left field wall for his 20th homer, a two-run shot for a 4-1 lead. One batter later, Saltalamacchia belted his sixth homer for the Rangers and 10th of the season.
Kinsler's RBI single in the second extended the Texas advantage to 6-1.
The Royals rallied with three runs in the fourth and two in the fifth against Rangers starter Kevin Millwood.
Smith's three-run blast in the fourth, his fifth of the season, made it 6-4. In the fifth, Mark Teahen's RBI single and Smith's sacrifice fly tied it at 6.
Millwood gave up six runs and eight hits in five innings, striking out seven and walking three.
In four innings, Buckner allowed six runs and seven hits, struck out two and walked three.
Kinsler is 21-for-41 (.512) with three homers and 10 RBI during his 10-game hitting streak. ...Smith has hit 15 of his 16 career homers on the road. He's had four RBIs in his career three times, twice this season. ... Wilkerson reached 20 homers for the third time in his career. ... The crowd of 18,892 was the smallest at home for the Rangers this season. ...Texas' David Murphy played all three outfield spots, starting in CF and then moving to RF and LF for defensive purposes later in the game. ... David DeJesus was hit by a pitch in the seventh, the 18th HBP for the Royals this season, tying a club record. ... Gload stumbled over first base while running out the eighth-inning double play and left the game with a hyperextended knee.