Morales hit two home runs and had six RBI in helping Los Angeles break out of an offensive slump.
The Angels appeared headed for what would have been their seventh loss in nine games when Oakland built a 6-1 lead through five innings.
Los Angeles got a run back in the sixth, when Morales doubled home Vladimir Guerrero, and the Angels then stormed from behind in the seventh by sending 11 men to the plate and capitalizing on two Oakland errors.
The Angels increased their lead over Texas to five games in the American League West.
Morales also homered in the second, but Oakland put together a five-run third that featured a two-run single by Kurt Suzuki and a two-run homer by Scott Hairston.
The loss went to Brad Ziegler (1-4), who came on in relief during the seventh-inning onslaught.
The Angels tacked on two more in the eighth, a single by Morales driving in one of the runs.
Jose Arredondo (2-3) got the win by working two innings of relief.