ARLINGTON, Texas (AP) -- Yoenis Cespedes gave Oakland an early lead with his bat. He prevented what could have been a huge collapse with his arm.
Cespedes hit a three-run homer in the first inning, then threw out Alex Rios at third base to end a big Texas comeback in the eighth as the Athletics survived a shaky night from the bullpen to extend their AL West lead with a 9-8 victory over the Rangers on Friday night.
The Rangers trailed 9-2 when Elvis Andrus and Rios had two-run singles as part of six-run inning to close within one.
Adrian Beltre's third hit was a single to Cespedes in left field, and the Cuban star ended the threat by throwing out Rios trying to go from first to third, where the tag from Josh Donaldson arrived just about the same time as Rios' foot.
''It was a bang-bang play,'' Donaldson said. ''Cespedes made a perfect throw and I was able to put a tag on it, and it ended up as an out.''
Rios said he was certain he would make it to third with the play happening in front of him.
''And actually, I was correct,'' said Rios, who was ejected by Andy Fletcher for angrily arguing the call. ''I believe I was safe on that call.''
The A's handed the Rangers their fourth straight loss and moved 4 1/2 games ahead of Texas in the opener of the final series of the regular season between the past two AL West champions.
Cespedes' 23rd homer came off Derek Holland (9-9), who is winless in a career-high seven straight starts.
Dan Straily (10-7) allowed two hits in 5 2-3 innings to win his fourth straight start and beat Texas for the second time in 11 days.
The right-hander might have stayed around longer if he hadn't struggled with four walks and a hit batter. The bullpen was wild, too, and it almost cost the A's the game.
Brett Anderson walked Beltre and A.J. Pierzynski to start the eighth, and Ron Cook later gave Ian Kinsler a free pass with the bases loaded for Oakland's eighth walk.
Andrus followed with a single to right field, and Rios singled to center after a passed ball moved both runners into scoring position.
The call against Rios set off several Rangers. First-base umpire Joe West tossed Texas pitcher Matt Garza for complaining from the dugout in the top of the ninth.
''At that part of the game there were a lot of emotions,'' Rios said. ''We're fired up and to have that rally killed like that, it's disappointing.''
Sean Doolittle, who gave up Beltre's hit in the eighth, allowed a double to Robinson Chirinos with two outs in the ninth but ended up striking out the side, getting Jurickson Profar looking for his second save in seven chances.
''We usually lock those games down, but we didn't,'' Oakland manager Bob Melvin said. ''We put ourselves in a position not to win, but we didn't lose.''
Donaldson homered and drove in three runs, and Brandon Moss hit his 27th for Oakland. Derek Norris had three hits.
Holland's shortest outing of the season ended with no outs in the fourth after consecutive singles from Norris and Kurt Suzuki. The left-hander has been stuck on nine wins since Aug. 4 and is 0-3 with an 8.78 ERA in three starts in September.
Holland gave up eight hits and six runs in three innings in his second loss to the A's in 10 days.
The Rangers dropped to 2-9 in September and fell a game behind Tampa Bay for the AL wild-card lead.
Straily walked his first two batters with a 3-0 lead, and Kinsler and Andrus both scored to get Texas within 3-2. But the 24-year-old right-hander bounced back with five strong innings before losing his control again in the sixth.
''Really what it came down to, we were in a fight and I wasn't bringing it,'' Straily said. ''I was just missing. Instead of being super-aggressive, I was trying to hit spots.''
Beltre had both hits off Straily, driving in Kinsler with a single in the first before Pierzynski brought home Andrus on a sacrifice fly. Beltre had an infield hit in the sixth, and Straily didn't make it out of the inning after hitting Pierzynski with a pitch and walking Jim Adduci.
NOTES: Every starter in the Oakland lineup had at least one hit and the A's finished with 14 hits, just two nights after getting a season-high 22 in an 18-3 win over Minnesota.