KANSAS CITY, Mo. -- Oakland rookie Dan Johnson is on a home run binge.
Johnson homered for the third consecutive game and the Athletics rallied from a three-run deficit to beat the Kansas City Royals 5-4 on Friday night.
The Royals have lost eight straight, while the A's have won eight of nine.
"My whole year I've been streaky with home runs," said Johnson, who has gone deep nine times. "I get in a groove where I hit a couple of home runs in a row and then I go dry again. I literally go in streaks."
Johnson's streak goes beyond home runs. He is hitting .469 in a season-high nine game hitting streak. He is hitting .380 since the All-Star break to raise his average to .324.
Kansas City took a 4-3 lead into the eighth, but relievers Jeremy Affeldt (0-1) and Ambiorix Burgos allowed two runs, three walks, a single and a wild pitch. Bobby Kielty's single off Burgos scored Bobby Crosby with the first run. A wild pitch by Burgos, who has blown three saves in five opportunities, allowed Eric Chavez, who had walked, to score the go-ahead run.
"I don't have an excuse," Affeldt said. "I flat out stunk, plain and simple. I just didn't throw a strike. I usually say we lose as a team, but I lost that one, coming in and walking three guys. I take full responsibility. They say if you're going to miss to miss down. I happened to miss down on about every single pitch. That's a patient team, not a team you want to nit pick with."
Johnson was one of the three A's in the eighth to draw a walk from Affeldt, who threw just six strikes in 18 pitches.
"That's our philosophy, we're aggressive, but very patient," Johnson said. "If we don't get our pitches, we try to get on base. In that situation, we really need to get on base."
Left-hander Joe Kennedy (2-0) allowed one hit in 2 1/3 scoreless innings in relief of Kirk Saarloos to pick up the victory.
Huston Street worked a flawless ninth for his 13th save, one better than Oakland's rookie record set by Rollie Fingers in 1969.
Johnson hit a two-run shot in the sixth to cut the Royals' lead to 4-3. Johnson's homer came on a 2-0 pitch from starter Zach Greinke and landed in the Royals' bullpen. Crosby led off the inning with a single.
"These guys don't give up," A's manager Ken Macha said. "That's part of the attitude and make up of these guys. During this streak when the other team scores it seems that we come back and score the next inning."
Greinke, who leads the majors with 13 losses, gave up three runs and seven hits over seven innings, leaving with a 4-3 lead. Greinke, who lowered his ERA to 6.02, struck out five, walked one and hit a batter.
"I've been up and down lately," Greinke said. "I was probably due for a decent one again. My location was real good. I kept it low in the zone and kept us in the game for a while. On the home run to Johnson, that was a pitch he should have hit for a home run. The first mistake was getting behind in the count and the second mistake was the location of my fastball, waist high."
Jason Kendall, who entered the game with just 18 extra base hits and the lowest slugging percentage (.333) in the majors, doubled home Jay Payton with two outs in the fifth to give the A's a 1-0 lead. Payton led off the inning with a single.
John Buck hit his first homer since June 20, a two-run shot off Saarloos in the Royals' four-run fifth. Buck was just 2-for-20 in his previous five games. Mark Teahen led off the inning with a double and scored on Angel Berroa's single. Matt Stairs' singled home Terrence Long with the final run of the inning.
Saarloos, who had won his previous two starts and three of his past four, lasted 4 2/3 innings, allowing four runs and seven hits.
"After I got pulled I wondered what happened," Saarloos said. "It was bang, bang, bang and I was out. The first four innings I was on top and getting a lot of ground balls. In the fifth, I got underneath my cutter, which was flat, straight, up and kind of sloppy. All the hits except for Long's were on cutters. I know what I did wrong. I threw bad pitches. I'm not really worried about it."
Kansas City CF David DeJesus, who suffered a mild concussion after being kneed while stealing second base on Thursday at Boston, was in the lineup on Friday ... A's DH Scott Hatteberg was a late scratch with a slight rib cage strain. Adam Melhuse replaced him. ... RHP Jose Lima, who starts Saturday against Oakland, has an 11.93 ERA in three career starts against the A's, his highest ERA against any opponent. ... The crowd of 23,979 pushed the Royals' attendance to more than one million for the 33rd consecutive year.