"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."
"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.
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.