James Shields took a three-hitter into the eighth inning, leading Tampa Bay over the Kansas City Royals 5-3 Wednesday for the Rays' 16th win in 21 games.
Shields (12-7) retired 12 in a row after Alcides Escobar's two-out single in the third and allowed three runs and five hits in 7 2-3 innings. The right-hander struck out seven and walked one, improving to 4-0 with a 2.15 ERA in his last five starts.
Escobar ended Shields' day with a two-out RBI triple in the eighth that pulled Kansas City to 4-2. Jake McGee allowed a run-scoring single to Alex Gordon, and Kyle Farnsworth retired Billy Butler on a grounder.
Jose Labaton homered off Aaron Crow leading off the bottom half, and Fernando Rodney pitched the ninth for his 39th save in 41 chances.
Tampa Bay won two of three in the series, limiting the Royals to just five runs. Tampa Bay leads the AL with a 3.27 ERA.
Kansas City manager Ned Yost was ejected in the eighth by plate umpire Scott Barry for arguing after Eric Hosmer took a called third strike.
Luis Mendoza (7-9) gave up two runs, five hits and four walks in 4 1-3 innings. He also hit a batter and balked.
Jeff Francoeur's RBI single put Kansas City ahead in the second, but the Rays took a 2-1 lead in the third on Ben Zobrist's sacrifice fly and Jeff Keppinger's RBI single. Ryan Roberts doubled in a run in the sixth, and the Rays made it 4-1 in the seventh on an error at second by Escobar, who couldn't handle Francoeur's throw from right on Zobrist's double.
NOTES: Tampa Bay went 1 for 8 with runners in scoring position through the fifth and 1 for 13 overall. ... Mendoza threw 43 of 81 pitches for strikes. ... Tampa Bay begins a three-game home series Thursday night against Oakland that ends Saturday. The Rays don't play on Sunday due to Tropicana Field being used for next week's Republican National Convention. ... The Royals are off Thursday before a four-game series at Boston.