Morales' career night extended the Angels' lead in the American League West to five games over the Rangers and also marked the ninth time the Halos won despite trailing by four or more runs.
Morales, who hit a solo homer in the second inning to get the Angels on the board, also had two doubles to become the first Angels player to record four extra-base hits since Juan Rivera did it last year on Sept. 18 against Seattle. Morales' five hits also were the most since Casey Kotchman went 5-for-5 against the Indians last year on July 23.
"Tonight you saw his big power," Angels manager Mike Scioscia said. "He's as strong as they come, and he had a great night for us."
Morales' biggest hit came in the seventh with the Angels down, 6-5, with two outs and reliever Brad Ziegler on the mound. Morales fell behind 0-2, but he went deep to right field for his 29th home run, breaking Chili Davis' club record for home runs in a season by a switch-hitter.
"I made a pretty good pitch, a changeup down in the zone," Ziegler said. "He took a bad swing at it. We had him way out in front. But he still found a way to get the barrel on it."
The homer was part of a seven-run inning for the Angels, and six of those runs came with two outs. They scored their first run of the frame on an error by first baseman Daric Barton, and Vladimir Guerrero brought the Angels within a run with a two-run single.
Morales then hit his three-run homer before Erick Aybar tripled and came home to score on a single by Howard Kendrick.
"Everyone knows we don't give up," Torii Hunter said. "We stay in there and battle. If a team scores five runs in an inning, we want to do it, too. It's never over."
The seven-run inning bailed out rookie right-hander Trevor Bell, who lasted just 2 2/3 innings and was knocked out of the game after allowing five runs in the third.
Bell, who will be replaced by Kazmir in the rotation, allowed five runs on seven hits before being replaced by Darren Oliver.
Oliver got of the jam by getting Mark Ellis to ground out to end the inning. Oliver then allowed a run in the fourth on an RBI single by Adam Kennedy.
The A's lead by four runs after the fourth inning and appeared on their way to beating the Angels for the second consecutive night.
But Morales brought the Angels within three runs on a run-scoring double off the wall in right field that was reviewed by the umpires but ultimately ruled a double. Scioscia went out to protest, but the original call was upheld.
"I thought it was gone when it hit the wall and came back," said Morales, who was inches from a three-homer game. "I thought it went over and came back."
The Angels tacked on two runs in the eighth. Juan Rivera plated a run with a sacrifice fly, and Morales added both his fifth hit and sixth RBI of the night to give the Angels an 11-6 lead.
"It took our offense a while to get going, especially getting down 6-1," Scioscia said. "But in the dugout we kept saying, 'Let's get things going,' and they opened up ... a little bit and Kendry came up with the key situation and came through."
The run-scoring single was Morales' 91st RBI of the season. His 42 RBIs since the All-Star break leads the AL.
"This guy has a chance to get 20 to 25 more RBIs and maybe 10 home runs," Hunter said. "He's the real deal. The only question we had was: Can this guy play defense? And he's shown everybody he can do that, too."