ST. PETERSBURG, Fla. -- Not even Oakland All-Star Dan Haren could slow down the suddenly resurgent Tampa Bay offense.
Carlos Pena hit two homers, and Joel Guzman had a two-run triple during a three-run fifth inning as the Devil Rays beat the Athletics 7-4 on Sunday for their first three-game winning streak since June 9-12.
B.J. Upton also went deep for the Devil Rays, who scored 33 runs in taking the final three games of the four-game series.
"I am very impressed," Tampa Bay manager Joe Maddon said. "The mental quality of the at-bat has really been lifted. You can work physical in all you want. Until the mental end gets lifted, you never become the type of hitter you should become. I think more than anything, our mental at-bats have got a lot better."
Tampa Bay had scored just 24 runs in 11 games leading up to Thursday, at which time hitting coach Steve Henderson held a postgame meeting in a batting cage with the position players. Since then, the Devil Rays have had 42 hits.
Andy Sonnanstine (3-9) won for the second time in his last three starts. He allowed two runs, five hits, two walks and had seven strikeouts in five-plus innings.
Al Reyes struck out three in the ninth for his 20th save in 22 opportunities. At 37 years, four months, Reyes became the third-oldest pitcher -- behind Hoyt Wilhelm (41) and Ellis Kinder (39) -- to record his first 20-save season.
Haren (14-5) gave up five runs -- three earned -- and four hits in six innings. The right-hander struck out a season-high 10, but fell to 7-3 over his last 14 starts.
"It's frustrating losing to a team that we should be able to beat," Haren said. "I felt very confident going into this game that we would win. It'll be a tough ride home."
Kurt Suzuki homered and had two RBI for Oakland.
"The Devil Rays played better than us," Suzuki said. "There's nothing more you can say about that."
Delmon Young singled to start the fifth and went to second when Josh Wilson reached base with one out on Jack Hannahan's errant throw. Guzman drove in two runs with his triple to center, making it 3-2, and wound up scoring himself when shortstop B.J. Furmaniak was given an error for a wild relay throw to third.
"The way things have happened so quick, it's been pretty exciting," said Guzman, who had a game-winning RBI single in the 12th inning just hours after being called up from Triple-A Durham on August 19.
Pena extended the Tampa Bay lead to 5-2 with his homer in the sixth, and added a two-run shot in the ninth, his 30th of the season.
"It's just awesome," Pena said. "I'm grateful to get the opportunity to play and to be able to do that."
It was Pena's ninth career multihomer game and first since Aug. 23, 2005, when he did it with Detroit against Oakland.
The Athletics loaded the bases with one out in the sixth, but failed to score when Upton caught Hannahan's liner to center and then threw out Jack Cust trying to score from third.
Suzuki's solo homer and an RBI single by Cust got the Athletics within 5-4 in the seventh.
Consecutive run-scoring doubles by Hannahan and Suzuki put Oakland ahead 2-0 in the second.
Upton cut the Tampa Bay deficit to 2-1 in the bottom of the second on his 20th homer of the season. Upton has six RBIs in the past three games.
Umpire Bruce Froemming was honored before making his final appearance at Tropicana Field. The crew chief, who joined the major league staff in 1971, is retiring after this season. ... Oakland SS Marco Scutaro, who left Saturday's game with an adverse reaction to the medicine he's taking after experiencing dizziness last week, was out of the starting lineup. He entered the game as a defensive replacement in the eighth. ... Athletics DH Mike Piazza was rested. He struck out as pinch hitter in the eighth. ... Haren has allowed 19 homers this season. ... Upton's 20 homers this year have come in 98 games. He had five homers in 95 games entering 2007. ... Oakland 2B Mark Ellis has a career-high 11-game hitting streak.