CLEVELAND -- Kelly Shoppach swung like he knew exactly what pitch was coming.
Shoppach caught Alan Embree (1-1) when they both played for the Red Sox three years ago.
"It was do or die," the catcher said. "I knew he'd go with his bread and butter and not let a young guy beat him on his second or third pitch."
Shoppach hit the 1-0 fastball into the left-field bleachers for his fourth homer, then was pounded by jubilant teammates as he crossed the plate.
"It was exciting," Shoppach said. "I ran harder than usual because I was in a hurry to get beat up."
Cleveland's sixth win in nine games pulled the Indians into a first-place tie with Detroit in the AL Central and extended Oakland's losing streak to a season-high five games.
"It was a strike and he let me know how good a strike it was by the way he hit it," Embree said. "This could have been a big lift for us. I let us down. It definitely stinks."
Travis Hafner's two-out, two-run double tied it.
Grady Sizemore drew a one-out walk off Embree, who had blown only one of nine previous save chances. With two outs, Victor Martinez walked on four pitches and pitching coach Curt Young went to the mound to speak with Embree.
Hafner lined the next pitch to right-center to tie it at 5.
"I was pumped up," said Hafner, who pumped his fist in glee at second base after the hit. "I had a chance earlier with the bases loaded and didn't come through. If I don't get a hit there, the game is over."
"This team always has a chance, it really does," said Shoppach, hitting .382 with 16 RBI in 29 games. "It's a pretty special club. We all believe in one another."
The rally kept Athletics ace Dan Haren from earning his 10th consecutive win and gave the victory to Rafael Betancourt (1-0), who yielded Shannon Stewart's fifth homer in the top of the ninth that put Oakland ahead 5-3.
Mark Ellis had four hits and three RBI for Oakland.
Haren, who has not lost in 15 starts since falling to 0-2 in his second start of the season April 7, gave up three runs and eight hits over 6 2/3 innings. His ERA rose to 1.91. His nine-game winning streak matches Boston's Josh Beckett for the longest in the majors this year.
"He did a great job," manager Bob Geren said. "It was hot. He battled. He pitched well against a very good hitting team.
"It was a tough loss, obviously. We had it won and they came back and took it from us."
Haren fell behind 3-1 in the third inning before settling in. He retired 13 of 14 until Josh Barfield singled with one out in the seventh and Sizemore followed with a walk.
The rookie got lefty Hafner to line out to center on a 2-2 pitch to end the threat. Hafner stepped to the plate hitting .388 (19-for-49) with nine homers and 70 RBI in his career with the bases loaded.
Ellis hit a two-run homer in the fifth off Indians starter Cliff Lee and doubled in the go-ahead run in the seventh against Tom Mastny, who wiggled out of further trouble.
Stewart singled with one out and scored on Ellis' double for a 4-3 lead. After Nick Swisher was intentionally walked, Mastny struck out Eric Chavez and catcher Martinez threw out Ellis trying to steal third to complete an inning-ending double play.
Ellis' two-run homer, his eighth, tied it at 3 in the fifth.
Sizemore doubled and scored on Peralta's two-out single in the first.
Jack Cust homered on an 0-2 pitch by Lee to tie it in the second. The drive to right-center was his 12th homer of the season and fourth in 15 at bats against Cleveland.
Sizemore opened the third with his 13th homer. Blake then singled, went to third on a double by Martinez, and scored on a groundout by Hafner to make it 3-1.
- The win was the Indians' 150th in their last at bat at Jacobs Field, which opened in 1994.
- Shoppach's shot was the 49th walkoff homer at the ballpark and first since Peralta did it Aug. 30.
- Sizemore is 8-for-14 (.571) in his career against Haren.
- Embree had only eight saves in 729 career appearances before this season.