The Halos recorded a season-high 20 hits and their most runs in a game this month. That covered up a rough night for starter C.J. Wilson and the bullpen.
"I think as far as having our backs against the wall and having to hit, this was probably our best game all year," Angels manager Mike Scioscia said. "It might have been our best clutch hitting performance of the year. Even though there were some rough spots on the pitching side we held on and got it done."
The Angels saw two leads quickly dissolve, but their bats saved the day.
"Our offense just did it, that's all there is to it," said Wilson, who allowed seven runs (six earned) in five innings. "We scored 14 runs -- that's freaking awesome."
Angels closer Ernesto Frieri blew his second save in 17 chances, serving up a homer to Cody Ross in the ninth that tied the game at 12. Still, he shrugged it off and struck out Adrian Gonzalez, who represented the winning run in the 10th, to end the game.
"In that at-bat I threw everything that I had in my arm," Frieri said. "I just went with my best stuff, my fastball, and let it go and see what happens. I was lucky that I struck him out."
Trailing, 11-9, entering the ninth, the Angels scored three runs off Red Sox closer Alfredo Aceves.
"I missed a couple of pitches," Aceves said. "It's not about that we lost the game. There were like  runs, so it's not that I pitched one pitch and we lost because of that. It's the entire game."
Vernon Wells started the rally with a towering home run that just cleared the Green Monster. Torii Hunter scorched a liner to left that scored Mike Trout, who barely avoided Jarrod Saltalamacchia's tag at the plate. Hunter scored on Mark Trumbo's first hit of the night.
"It was a great game to be a part of and we've come out on the wrong end of a lot of those games the last couple weeks," Wells said. "It was good to see this team fight and score enough runs to win this game."
Wilson couldn't match the efforts of Jered Weaver and Ervin Santana earlier in the series, though.
The left-hander put the Angels in an early hole. Wilson gave up six runs over the first two innings, including a three-run homer by Dustin Pedroia. It was the sixth straight start he allowed a homer.
But the Angels quickly responded and broke out for eight runs in the third inning to take an 8-6 lead.
Los Angeles sent 13 batters to the plate and tallied six hits and three walks in the frame. Hunter had two singles, an RBI and a run. Trout had an RBI single, a run and his 40th stolen base of the year, becoming the youngest player to record 40 steals and 20 homers in a season. The Halos benefited from an error and a botched rundown. They scored three runs without a hit.
The eight runs were one shy of the Angels' season high for an inning. They scored nine against the Rangers on July 30 in the sixth inning of a 15-8 victory.
Given new life, Wilson retired the next eight batters he faced before giving a run back in the fifth. After watching his team pile on runs, Wilson was confident the Angels wouldn't lose.
"I was like, 'OK, cool, we're going to win the game now.' I knew I was going to pitch well enough to hold them down at that point," Wilson said. "After we scored eight, I knew that they couldn't shut us out the rest of the game. If a team can score eight in one inning, you know that you can get more."
Jason Isringhausen gave up a solo homer to Mike Aviles in the sixth to knot the game at 8. Jordan Walden relieved him and allowed consecutive doubles as the Red Sox regained the lead, 9-8.
The Angels rallied again in the seventh as Trout delivered an RBI single to tie the game at 9.
With 37 games remaining, the Angels are 2 1/2 games out of the second American League Wild Card spot.
"This team still has some fight in it," Wells said. "We know we have a unique opportunity to do something special and hopefully we continue to take advantage of it throughout the rest of the season."