Martin Perez (5-6) allowed eight hits and a walk over seven innings, but kept all that traffic to just three runs. Two of those came in the second, when Alcides Escobar homered to left.
Beltre connected in the sixth off Royals starter Jason Hammel, who had just surrendered back-to-back singles — the first hits off him all night. Napoli followed with nobody out in the seventh, sending a poor pitch from reliever Mike Minor (5-2) soaring over the left-field wall.
Matt Bush breezed through a perfect eighth and Alex Claudio handled the ninth for his second save, giving the Rangers their 10th straight win over Kansas Citydating to last July.