KANSAS CITY, Mo. -- Adrian Beltre and Nomar Mazara hit home runs and drove in three runs as the Texas Rangers beat the Kansas City Royals 7-4 on Saturday night for only their third win in the last 13 games.
Beltre homered in a four-run seventh with Mazara and Ian Desmond aboard to put the game away. It was his career 427th home run, which ranks 49th on the all-time list.
Mazara hit a two-run homer in the fourth and doubled in another run in the fifth.
Left-hander Cole Hamels (11-2) picked up the victory, allowing one unearned run and five hits over 5 2/3 innings.
The Royals made it interesting in the ninth, scoring three runs and loading the bases before Salvador Perez grounded into a game-ending double play.
The Royals' first inning looked eerily similar to their first inning Friday -- one unearned run on one hit, with Eric Hosmer driving in the run both nights on weak ground balls.
Cheslor Cuthbert laced a double to the right-field corner and wound up on third when the ball skipped past Nomar Mazara for his first major league error.
Hosmer grounded out to shortstop Elvis Andrus, scoring Cuthbert, who extended his hitting streak to a dozen games.
Royals starter Yordano Ventura struck out the side in the first on 17 pitches and retired the first nine batters before running into difficulty in the fourth.
Jurickson Profar walked on four pitches to start the inning. Mazara homered on an 0-and-1 pitch to center. It was Mazara's 12th home run, but his first since June 19.
Mazara, who leads American League rookies with 94 hits, doubled home Delino DeShields, who walked to lead off the fifth, giving the Rangers a 3-1 advantage.
The inning ended with Beltre lining a shot clocked at 109 mph off Ventura's ribs. While he managed to throw out Beltre, Ventura crumpled to the ground and trainer Nick Kenny rushed to his aid.
Ventura left the field under his own power, but did not come out for the sixth. X-rays were negative.
Ventura allowed three runs on three hits, two of them to Mazara, and four walks in five innings, throwing 33 of his 89 pitches in the fourth inning.
NOTES: Royals LHP Mike Minor, who has not pitched since 2014 after 2015 shoulder surgery, threw a simulated game. ... Rangers RHP Martin Perez will start Monday instead of RHP Kyle Lohse, who has a 12.54 ERA in two starts. ... While the Royals have not announced their Tuesday starter against the Angels, manager Ned Yost said the choices are LHP Brian Flynn and RHP Dillon Gee. Yost appears to be leaning to Gee, who he said is stretched out to throw 85 pitches, compared to Flynn's 60. ... Rangers LHP Derek Holland threw his first bullpen session, 25 throws, since going on the disabled list because of shoulder inflammation. Holland's next bullpen is scheduled for Tuesday. ... It was Oklahoma City Thunder night at Kauffman Stadium, with Nick Collison, a former Kansas Jayhawk, throwing out the ceremonial first pitch with teammate Andre Roberson his catcher. ... Rangers RHP A.J. Griffin and Royals RHP Edison Volquez are the pitching probables for the series finale Sunday.