Late-inning rallies are becoming the trademark for the Kansas City Royals.

Eric Hosmer hit a three-run homer after Lorenzo Cain drove in the go-ahead run in a four-run eighth inning and the Royals defeated the Tampa Bay Rays 6-2 on Monday night.

The Royals have won four straight, matching their season best streak, and have scored 19 runs after the sixth innings in those victories.

"Good teams at the end of the game find ways to do it," Hosmer said. "We've been really doing it a lot of different ways, finding a way each and every night."

Cain's single scored Alcides Escobar with the first run of the inning before Hosmer took a pitch from Erasmo Ramirez (6-3) deep to right-center for his 10th home run. Hosmer has 10 RBIs in the first four games of this homestand.

"Cain took a good protective swing," Ramirez said. "He got good contact there through the right side. I made a high pitch to a great hitter like Hosmer, so he just made me pay about it. So, now I can do nothing about it."

Kelvin Herrera (1-1) blew the save, allowing a run in the eighth, but he picked up the victory. Steve Pearce scored from second on an infield single by Steven Souza Jr. to tie it at 2.

Royals starter Ian Kennedy walked a season-high five, including the bases loaded in the fifth, but limited the Rays to three singles and one unearned run over six innings. He has allowed two or fewer runs in eight of his 10 starts, lowering his ERA to 3.03.

Kennedy retired Logan Morrison on a pop up to shortstop Escobar to end the fifth. Kennedy also escaped a bases loaded jam in a 29-pitch first inning when he walked two. He struck out Souza looking to end the inning.

Rays right-hander Matt Andriese allowed two runs and five hits over seven innings.

Kendrys Morales walked with one out in the Royals' second. Paulo Orlando, who had two hits and is batting a major league-leading .441 in May, doubled, moving Morales to third, where he scored on Cheslor Cuthbert's groundout.

The Rays tied it with an unearned run in the fourth. Morrison led off with a single, stole second, took third on catcher Drew Butera's throwing error and scored on Corey Dickerson's groundout to second baseman Whit Merrifield.

Jarrod Dyson produced a run with his feet in fifth. Dyson singled to center and when Desmond Jennings had difficulties picking up the ball, Dyson motored to second, just beating the throw. Dyson stole third and when catcher Hank Conger's throw landed in left field he trotted home.

"They probably felt I wasn't going," Dyson said. "A 3-1 count is a fastball count. I picked a good spot to go. Catcher come up, tried to fire it, rushed his throw and the ball ended up in the outfield. I get up and score easily."

TRAINER'S ROOM

Royals: C Salvador Perez missed his second straight game with a bruised quad.

UP NEXT

Royals: RHP Dillon Gee has never faced the Rays, leaving just the Red Sox, Indians and Mets as teams he has never pitched against.