Cespedes snapped an 0-for-13 funk with a two-run double in the third inning, added an RBI single in the fifth and then doubled in Josh Donaldson as part of a five-run sixth.
Eric Sogard added three hits and two RBIs, and Brandon Moss also drove in a pair of runs for Oakland. The A's (62-43) moved a season-high 19 games over .500 and extended their lead to six games over Texas in the AL West.
Erick Aybar doubled and tripled for the Angels, who placed Albert Pujols on the disabled list before the game with a tear in his left foot that could end his season.
The A's took two of the first three games in this series primarily on the strength of their starting pitching. They got a big boost from their offense in the finale and a little help from the Angels' defense along the way.
Cespedes provided the biggest lift with his third three-hit game of the season. The Cuban slugger struck out looking in his first at-bat before his double in the third helped jump-start Oakland's comeback from a 5-0 deficit.
He later hit a towering popup in the fifth that landed for an RBI single when Angels center fielder Mike Trout lost it in the sun. The ball fell between Trout and right fielder Kole Calhoun as Moss scored from first with the tying run.
Trout had more fielding problems in the sixth after the Angels went up 6-5 on Aybar's double.
Stephen Vogt hit a sinking fly to center that bounced in front of Trout just as he nearly collided with Josh Hamilton racing over from left field. The ball landed in front of the two outfielders and rolled to the warning track as both players fell to the turf. Seth Smith scored on the play to tie it 6-all.
Sogard followed with a single off reliever J.C. Gutierrez (0-2) to drive in Vogt with the go-ahead run, then scored on Jed Lowrie's RBI double to give the A's an 8-6 lead. Moss and Cespedes also had RBIs in the inning.
Jesse Chavez (2-2) pitched two innings for the win.
The Angels lost for the seventh time in nine road games and fell a season-high 13 games out of first place.
Before the game, manager Mike Scioscia announced that Pujols had been placed on the 15-day disabled list with a partially torn plantar fascia, an injury that has bothered him most of the season. He aggravated it while running out a single in the ninth inning of Friday's 6-4 loss to Oakland.
"This is something that, talking to Albert, has been going on for six or seven years," Scioscia said. "It's been going on for a long time and he's managed it. This is a big blow to our team right now."
Although surgery seems unlikely, Scioscia did not rule out Pujols being sidelined the remainder of the season.
The news didn't get any better on the field.
Right-hander Tommy Hanson was staked to a five-run lead after two innings but struggled with his command and was gone in the fifth. Hanson struck out five and allowed four hits but walked five — three of which scored.
Oakland starter Jarrod Parker wasn't much better. He walked a career-high seven, but the A's got him off the hook.
The Angels jumped on Parker early when they scored four times and sent 10 batters to the plate in the first inning. Howie Kendrick and Mark Trumbo both drove in runs, and Alberto Callaspo added a two-run single.
After Aybar tripled leading off the second, Kendrick hit into a fielder's choice to make it 5-0.
NOTES: Angels RHP Billy Buckner, designated for assignment Thursday, cleared waivers and reported to Triple-A Salt Lake. ... Los Angeles RHP Jered Weaver (5-5) pitches the series opener against Texas on Monday. He has not allowed a run over his last two starts. ... A's LHP Brett Anderson (sprained right ankle) will throw a bullpen session and face hitters on Tuesday.