Every time Texas scored Wednesday night, it seemed the Royals managed to answer right back.

Until they finally ran out of time — and runs.

Adrian Beltre hit a three-run homer in the first inning, Michael Young also went deep and the AL West-leading Rangers held on after allowing a run in the ninth for a 7-6 victory.

"We played catch-up all night and when we'd get close they'd tack on," Royals manager Ned Yost said. "The three-run seventh did us in."

Ryan Dempster (5-1) gave up RBI doubles to Billy Butler in the first inning and Salvador Perez in the sixth, but was otherwise stingy for the Rangers. He only allowed two other hits in six sharp innings, striking out eight to win his fourth consecutive game.

Beltre's homer came off Everett Teaford (1-4) in the first inning, and Young's solo shot came off Vin Mazzaro during a three-run seventh — runs that proved handy when Kansas City rallied.

Alcides Escobar's RBI single off Joe Nathan put the potential tying run on first with two outs in the ninth, but Alex Gordon flied out to end the game. It was Nathan's 27th consecutive save.

"Their tack-on runs doomed us," Yost said.

Ian Kinsler, Elvis Andrus and Nelson Cruz also drove in runs to help the Rangers (81-55) take a five-game lead in the division. Second-place Oakland lost to the Angels earlier in the day.

Dempster has allowed only five earned runs in his last 26 innings, giving the Rangers precisely what they hoped for when they acquired him in a trade July 31 with the Chicago Cubs. The 35-year-old right-hander has won five of his last six, and has a 1.73 ERA over his last four starts.

"Executing pitches. I was able to do a good job of that tonight," he said. "I was able to keep the ball out of the middle of the plate, for the most part."

The 28-year-old Teaford was called upon to make his first start for Kansas City since July 8, when he allowed five runs in 4 1-3 innings at Detroit. He's been exemplary in long relief — he threw 5 1-3 scoreless innings last Saturday against Minnesota — but less effective as a starter.

That proved to be the case again Wednesday night.

Kinsler led off the game with a single, and after Andrus went down swinging, Josh Hamilton walked to put runners on first and second for the hottest hitter in the Texas lineup.

Beltre calmly waited for a 1-2 pitch from Teaford and sent it soaring over the left-field wall for a three-run homer, his 29th of the season. The ball landed just shy of the fountains.

"That's what I'm supposed to be doing," Beltre said demurely.

The slugging third baseman also tripled and scored in the eighth, giving him 10 homers, seven doubles and two triples since Aug. 20. Beltre has scored 15 runs and driven in 20 in that stretch.

"I saw his charts yesterday and the whole chart was like, red against lefties. It's basically a heat map. Red would describe Kansas City in July, that kind of hot," Teaford said. "If you make a bad pitch, he hits it real well. He's tough. You've just got to hope to make good pitches."

The Royals clawed back with runs in the first and sixth, but Texas added three in the seventh, the homer by Young starting things off. Kansas City added two more runs in the bottom half to keep it close, and the teams traded runs in the eighth before Nathan held on through a shaky ninth.

"They kept coming back," Beltre said. "Anytime we scored, they came back. Those guys can swing the bat pretty good over there."

NOTES: Royals CF David Lough left with a slight hamstring strain. ... Butler tied a career high with three doubles. ... Royals 1B Eric Hosmer stole two bases. He has 14 on the year. ... Rangers LHP Robbie Ross (strained left forearm) returned to Texas to be examined by Dr. Keith Meister. He could begin a throwing program soon. ... RHP Scott Feldman (6-11, 5.01 ERA) starts the series finale Thursday night for Texas. RHP Luke Hochevar (7-13, 5.34) goes for Kansas City.