"With Ventura throwing the ball so well, it allowed to get us into the seventh inning with our big three spot with a lead," Royals manager Ned Yost said. "We were in good shape from that point."
The big three -- Kelvin Herrera, Wade Davis and Holland -- combined for 2 2/3 hitless innings after Ventura departed. The Royals are 54-3 when taking a lead into the seventh.
"We had a chance until they brought in Herrera, Davis and Holland, three outstanding arms," Rangers manager Ron Washington said. "They might be three of the best arms in baseball."
Ventura (11-9) allowed three runs, two earned, and five hits in 6 1/3 innings. The right-hander, who was skipped on his previous turn in the rotation due to a sore back, struck out seven and walked four.
Salvador Perez homered and drove in three runs for Kansas City, which finished with 10 hits.
Holland struck out two in a perfect ninth, earning his 41st save in 43 chances. It was Holland's third straight day of work.
"It's kind of a double-edged sword for me," he said. "We're in a playoff race, and you never know when you're going to get another chance to go to the playoffs. Kansas City hasn't been there in a while, a long time exactly.
"You want to do everything you can, but you also want to be smart about it. If I go out there at 40 or 50 percent and don't get the job done because of it, that's me being selfish for wanting to pitch. You've got to understand the situation that if you need a day, you've got to express that to the coaching staff."
Perez, who had three hits, went deep in the third with Alex Gordon aboard. His two-out double in the first scored Gordon, who had singled and swiped second.
Colby Lewis (9-12) pitched seven innings for Texas, yielding four runs and nine hits. The right-hander had thrown a complete game in winning each of his previous two road starts.
"I missed with a couple of pitches early in the game but I sharpened up later," Lewis said.
Carlos Peguero, who was just brought up from Triple-A Omaha, doubled in the fifth and scored on Mike Moustakas' single to give the Royals a 4-0 advantage.
The Rangers lost a replay challenge and won another one. With runners on the corners in the second, Rangers catcher Telis grounded into a double play to end the inning. Washington wanted a review, believing Telis was safe, but the ruling on the field was upheld. In the seventh, Jarrod Dyson doubled for the Royals but went over the bag. Umpire Fieldin Culbreth said Dyson got back safely. A review overruled him, and Dyson was out.
Rangers: LHP Derek Holland will make his first start of the season after having knee surgery Jan. 10. He went 2-1 with a 4.43 ERA in six rehab starts in the minors.
Royals: RHP Jeremy Guthrie (10-10) goes for Kansas City. Guthrie is 2-0 with a 4.29 ERA in his past three starts.
Rangers: RHP Miles Mikolas, who was skipped his previous start with shoulder fatigue, has not progressed and might not pitch Thursday in his next scheduled start.
Royals: DH Josh Willingham has not played since Friday because of a bad back. He will try to swing the bat Tuesday.
Copyright by STATS LLC and The Associated Press
Kansas City Royals' Alex Gordon (4) celebrates with Raul Ibanez after scoring on a double by Salvador Perez during...
21,536 (56.8% full) - % is based on regular season capacity
75 degrees, overcast
Home Plate - Marty Foster, First Base - Rob Drake, Second Base - Fieldin Culbreth, Third Base - Alan Porter
Yordano Ventura averages 96.8 mph with his fastball, the fastest in MLB among qualified starting pitchers. The Texas Rangers are hitting .269 against fastballs of 95-plus mph this season, second in the AL. Leonys Martin leads the AL with a .364 BA on such pitches this season.