ST. PETERSBURG, Fla. -- Jered Weaver struggled with more than his fastball control. The Angels right-hander also overcame humidity inside the domed Tropicana Field.
Weaver allowed two runs over six innings to win his third consecutive start and Los Angeles beat the Tampa Bay Rays 4-3 on Tuesday night.
"I was down in the bullpen warming up and they said the temperature is 72 degrees and I was like 'no way it's 72 degrees in here,"' Weaver said. "I was sweating. It probably got to me a little bit. I changed my shirt and jersey in about the third or fourth [inning]."
Weaver (6-2) gave up five hits, four walks and struck out six. The right-hander has been touched for four runs over 21 innings in his last three outings.
"I was able to locate my pitches when I needed to," Weaver said. "It was just one of those games where it didn't feel right and I had to battle."
Weaver's four walks were a season-high.
"It was weird," Los Angeles manager Mike Scioscia said. "I know we're inside, but it seems like the humidity keeps creeping in here. He was tired. He wasn't as sharp as he's been, but he had enough to finish out the sixth."
Vladimir Guerrero had an RBI single during a two-run first. Brian Fuentes pitched the ninth, which included a game-ending double play by the speedy Carl Crawford, for his AL-best 16th save in 19 opportunties.
Ben Zobrist hit solo homer and finished with two RBI for the Rays, who have lost three in a row following a four-game winning streak. James Shields (5-5) allowed four runs and 10 hits in 6 1/3 innings.
"It's very uncharacteristic for us. We need to start making plays," Tampa Bay manager Joe Maddon said. "There were so many things that could have gone our way that did not go our way."
Guerrero hit a run-scoring single and Juan Rivera had an RBI grounder to put Los Angeles ahead 2-0 in the first. Rivera has four RBI in last two games.
Howie Kendrick opened the fifth with an opposite-field triple off the right-field wall -- which was confirmed after a video review by the umpires -- and scored on Chone Figgins sacrifice fly that extended the Angels advantage to 3-0.
Tampa Bay got within 3-2 in the sixth on an RBI grounder by Zobrist and Matt Joyce's sacrifice fly.
Bobby Abreu ended Shields' night with an RBI double with one out in the seventh that gave the Angels a 4-2 lead.
The Rays loaded the bases -- on a pair of hit batters and an intentional walk -- against Darren Oliver in the seventh, but failed to score when Carlos Pena hit a hard liner that first baseman Kendry Morales turned into a double play.
"We were fortunate," Scioscia said. "We gave them a lot of baserunners. The ball Pena hit, obviously, was a momentum changer."
Zobrist made it 4-3 on his 12th home of the season during the eighth.
Tropicana Field (28 games) and the new Yankee Stadium (29 games) are the only major league stadiums that have had at least one homer in every game this season.
Tampa Bay's B.J. Upton, who appeared to be unhappy when a 3-1 pitch in the ninth was called a strike, was ejected by plate umpire Mark Wegner after later flying out. Upton was talking to Wegner while heading toward the dugout after the out and was thrown out of the game.
After the game, the Angels recalled RHP Kevin Jepsen from Triple-A Salt Lake and optioned RHP Jose Arredondo to the Pacific Coast League club. ... Tampa Bay SS Jason Bartlett (sprained left ankle) took BP and fielded grounders, and could return within the next week. ... Angels CF Torii Hunter, slowed recently by a groin strain, was back in the lineup after sitting out Sunday's game. He is scheduled to get a day off Wednesday and start again Thursday. ... The Rays should have a rehab pitching schedule set for LHP Scott Kazmir (strained right quadriceps) in the next few days. ... Los Angeles RHP John Lackey, Wednesday's scheduled starter, is 9-1 overall against Tampa Bay.