"We just didn't play a clean game for us today," manager Bob Melvin said. "We didn't swing the bats well. ... J.D. doesn't have too many games like that."
A's starter Jesse Chavez benefited from two fine catches by center fielder Coco Crisp that denied Mike Trout and Kole Calhoun extra-base hits. And a fan-interference call in the fifth inning turned a Trout homer into a ground-rule double.
"I thought Jesse threw well," Melvin said. "You give up three runs to that lineup ... he did his job. We just didn't do enough offensively."
The A's had beaten the Angels the past eight games in which Richards had pitched, dating from Sept. 5, 2012. In six previous games against the A's as a starter, Richards was 0-3 with a 7.50 ERA. On May 30, he got just two outs and gave up five runs in a 9-5 loss at Oakland.
"In the back of your mind, you want to do better than you did," Richards said. "Two-thirds of an inning is pretty, pretty weak. I gave them one that time and I felt like this time was my time to come out swinging."
Richards (6-2) struck out four, walked none and hit a batter. He gave up four hits, and one earned run to lower his ERA to 3.09.
The A's had won seven of nine and nine of their past 13 games. The last time they didn't hit a home run was May 22, at Tampa Bay, a 5-2 loss; they hit 27 in the stretch that Richards and two relievers halted.
Chavez (5-4) lost his third start in a row. He went six innings, allowing three runs (two earned) on eight hits. He struck out five, walked one and hit two batters. The A's have provided just seven runs of support for Chavez in those three losses
"I was lucky to give up three, thanks to the defense," Chavez said. "They saved me tonight. It was just a couple of missed locations with runners on, which has been my Achilles heel the past two, three games."
On Crisp's leaping catch on the track in the third inning that denied Trout at least a double, Chavez said: "All I know is, it was hit hard. Coco made a great play to limit the damage [it turned into a sacrifice fly], and get an out there."
In contrast, there was Donaldson's defensive nightmare. He sailed a throw he said he shouldn't have made on Hank Conger's bunt single in the fifth, launching it well over first baseman Alberto Callaspo's head.
"I've just got to put that in my pocket," Donaldson said.
The second error, on an Albert Pujols grounder, came in the same inning, when Donaldson checked Trout back to second before throwing the ball away.
"I threw a cutter over there," he said.
The third error was a hard one-hopper on which Callaspo, an inexperienced first baseman, didn't do Donaldson any favors. It set up an unearned run against the A's bullpen in the eighth for the final margin.
"We've got to try and leave it behind us," Donaldson said after the A's lost for only the second time in seven games against the Angels. "Turn a page, and go on to tomorrow."
The career-high three errors gave him 12 for the season -- on a day when Melvin discussed what he termed "Gold Glove defense" by Donaldson during his pregame media briefing.
Donaldson leads American League third basemen in All-Star votes with 1,470,544 -- nearly double the total for the Rays' Evan Longoria, who's No. 2.
"The only thing we can do as players is pick him up," Chavez said. "We're all going to have those stretches, those days."