Royals 4, Rangers 3: Salvador Perez went 3-for-4 with a homer and three RBIs as host Kansas City held on to snap its three-game losing streak.Mike Moustakas recorded two hits and an RBI while Alex Gordon scored twice for the Royals, who remained one-half game ahead of second place Detroit in the American League Central. Yordano Ventura (11-9) posted his fourth win in five decisions, striking out seven while allowing three runs - two earned - on five hits and four walks in 6 1/3 innings, and Greg Holland struck out two in a perfect ninth for his 41st save.Tomas Telis drove in and scored a run while Adrian Beltre and Michael Choice each added an RBI for the Rangers, who fell to 3-4 on their 10-game road trip. Colby Lewis (9-12) lost for the fourth time in five starts, surrendering four runs and nine hits in seven frames.Kansas City got on the board early as Gordon singled with two out in the first inning and stole second before scoring on Perez's double. The All-Star catcher made it 3-0 with a two-run blast in the third and Moustakas added an RBI single in the following frame to increase the lead.Texas began chipping away in the sixth, when Elvis Andrus hit a one-out double, took third on a wild pitch and raced home on Beltre's groundout. Telis plated a run in the seventh with a single and scored two batters later on Choice's base hit to get the Rangers within 4-3, but Royals relievers Kelvin Herrera, Wade Davis (three) and Holland retired all seven batters they faced to preserve the victory.GAME NOTEBOOK: Beltre saw his homerless drought reach 20 games. ... Ventura bested Lewis for the second time in less than two weeks as he also notched the victory in their Aug. 22 matchup. ... Kansas City had lost five of its previous seven contests.