The Royals overcame an early deficit when Jeff Francoeur socked a solo homer in the fifth to produce a 2-2 tie.
They grabbed control in the next frame when former Ray Elliot Johnson doubled with two outs and Francoeur was intentionally walked to get to Escobar.
But the Royals shortstop crossed up the strategy when he lined a pitch into left field for a solid RBI single for the decisive blow, later scoring an insurance run on single by Alex Gordon (two RBI).
The victory was the 10th in 12 games for Kansas City, which took three-of-four games from Tampa Bay.
Wade Davis (4-5) tossed six innings to earn the decision, allowing two runs on five hits.
Aaron Crow, Tim Collins and Kelvin Herrera combined for 2 1/3 scoreless relief frames and Greg Holland got his 14th save despite yielding a ninth-inning homer to Jose Lobaton.
Rays starter Roberto Hernandez (4-7) absorbed the loss, yielding four runs on nine hits in a 5 2/3-inning effort.