ST. PETERSBURG, Fla. — Nate Karns struck out 10 while pitching into the seventh inning and Eric Hosmer had three hits as the Kansas City Royals broke out of an offensive slump to beat the Tampa Bay Rays 7-3 on Monday night.

Kansas City matched its best run output of the year and set a season high with 13 hits. Drew Butera homered and drove in his first two runs of the season, helping the Royals win for the fourth time in 17 games. Kansas City had scored three or fewer runs in four straight games.

Alcides Escobar, Lorenzo Cain, Salvador Perez and Whit Merrifield each had two hits for Kansas City, and Hosmer also stole two bases.

Karns (2-2) completed 6 1/3 innings, allowing two runs, six hits and two walks.

Blake Snell (0-3) allowed four runs and 10 hits over five innings. He failed to get an out in the sixth inning for the 10th time in his last 11 starts.

Butera led off the third inning with his homer, the first of five straight hits in a three-run inning. Butera drove in another run with a single in the sixth.

Brad Miller singled in Corey Dickerson for the Rays in the first inning, but Karns pitched shutout ball from then until the seventh inning. He struck out three straight after Colby Rasmus' triple in the second then got a strikeout and a double-play grounder with the bases loaded in the third.

Karns gave up a single to Kevin Kiermaier then plunked Derek Norris with one out in the seventh before being replaced by Matt Strahm, who let Kiermaier score on a wild pitch.