Rangers Royals Baseball (copy)

Kansas City Royals' Eric Hosmer slides home to score on a double by Mike Moustakas during the third inning of a baseball game against the Texas Rangers, Sunday, July 16, 2017, in Kansas City, Mo. (AP Photo/Charlie Riedel)

KANSAS CITY — On a bright afternoon in Kansas City, the Royals shaded the Texas Rangers.

Texas right fielder Shin-Soo Choo lost Lorenzo Cain's routine fly in the sun, and the ball glanced off his glove for an RBI single with two outs in the ninth inning that lifted Royals over the Rangers 4-3 Sunday.

"When I hit it, I was thinking out," Cain said. "Luckily, the sun had shifted over just enough to block his view and missing that ball. I appreciate that sun in that situation."

Choo tried to shield his eyes, but even sunglasses didn't help on Cain's sliced flyball.

"I saw the ball at the very beginning and the ball just kept going to right field and then I lost the ball," Choo said. "I'm guessing the ball's fair and just off the glove. I was trying to make the play so I can't say I was very lucky."

"You work on it during the season, in spring training on sun balls. On straight balls, on straight popups, you can have a better chance, but the ball was moving. That's a lot more difficult to catch," he said.

Cain could empathize, having to fight off the sun to make three catches in center.

"It's a tough sun today, so I definitely knew what he was going through," Cain said.

The Royals snapped a five-game losing streak, and also ended a 12-game skid against the Rangers.

Kelvin Herrera, 2-2, pitched a spotless ninth. Jason Grilli, 2-5, acquired by the Rangers from Toronto on July 2, took the loss.

Alcides Escobar led off the ninth with a single for his third hit and Alex Gordon walked on four pitches. With one out, Grilli hit Whit Merrifield with a pitch to load the bases. After Jorge Bonifacio struck out, Cain delivered the game-winning hit, with some help.