"He hung me a changeup and normally he buries that pitch, and he left it up," Middlebrooks said.
Middlebrooks lined a shot to left on a 1-2 pitch from Rodney (1-2) with the base loaded, giving the Red Sox the lead. Rodney, who blew just two saves last year, is 7 for 10 in save opportunities this year.
"This game is difficult," Rodney said. "Sometimes when you think you've got it in your hands, it's gone. That's how I'm feeling tonight. Sometimes you lose control for a little bit, and you can find your way back to finish that inning."
After walking Dustin Pedroia and David Ortiz, Rodney struck out Mike Napoli before loading the bases with a walk to Daniel Nava. Stephen Drew struck out, but Middlebrooks then came up with his bases-clearing hit.
"The approach by everybody in the ninth inning ... we took some close pitches," Boston manager John Farrell said. "We load the bases via the walk. Even though we're going up against a guy that's got tremendous stuff, there was no give up, there was not letdown."
Rodney finished with four walks, which is a career high.
The Red Sox had been 0-12 when trailing after eight innings.
"Awesome ... get us some momentum," Middlebrooks said.
Felix Doubront gave up two runs, three hits, six walks and had seven strikeouts over five-plus innings for the Red Sox, who are 6-9 in May. He threw 104 pitches, including 54 strikes.
Doubront pitched once in relief since his last start May 3 as the Red Sox have worked on the left-hander's delivery. His 1-0 pitch in the third to Luke Scott slipped out his hand and ended up in foul territory between home and first.
"I felt a lot better," Doubront said.
Tampa Bay's Alex Cobb allowed one run and three hits over 6 1/3 innings. He struck out six and walked two.
Cobb struck out 13 in 4 2/3 innings last Friday night against San Diego, becoming the first pitcher in major league history to fan that many batters and fail to make it through the fifth inning.
The Rays went up 3-1 in the sixth on RBI singles by Desmond Jennings and Scott.
Before the game, Tampa Bay put AL Cy Young Award winner David Price on the 15-day disabled list with a left triceps strain and recalled left-hander Alex Torres from Triple-A Durham. The Rays are hopeful that Price, who departed in the third inning of Wednesday night's game against Boston, will only miss two or three starts.
Doubront was pulled after walking Loney to start the sixth. Clayton Mortensen entered, got an out before issuing a pair of walks to load the bases. Desmond Jennings then singled to put Tampa Bay up 2-1.
Andrew Miller replaced Mortensen and allowed Scott's run-scoring single that made it 3-1.
Ryan Roberts gave the Rays a 1-0 advantage on his homer in the second.
Cobb retired his first 10 batters, including four on strikeouts, before Shane Victorino doubled down the right field line with one out in the fourth. Victorino scored to tie it at 1 on Ortiz's two-out single.
Victorino left after the eighth with lower back tightness.
"We'll check him tomorrow," Farrell said. "He's a little banged up right now."
Ortiz has 69 RBIs at Tropicana Field, which ranks second behind Manny Ramirez's 72 for the most by a visiting player.
Boston closer Andrew Bailey (right biceps strain) had a 15-pitch simulated game. The right-hander will make a minor league rehab appearance Saturday for Triple-A Pawtucket and could be activated from the 15-day disabled list on Monday. ... Red Sox RHP Joel Hanrahan, who had been the closer, had right elbow ligament replacement surgery and had his right flexor tendon repaired by Dr. James Andrews in Pensacola, Fla. .... Rays manager Joe Maddon said a decision has yet to be made on who will make Price's next scheduled start Monday in Toronto. Among the options are right-hander's Jake Odorizzi and Chris Archer, as well as Torres, who made his major league debut in 2011, when he appeared in four games -- all in relief. ... Farrell said the team has not discussed moving struggling RHP Daniel Bard from Double-A Portland to extended spring training. Bard walked five and threw just 8 of 30 pitches for strikes in one-plus inning for Portland Wednesday.