"We got started early tonight again, then keep pushing the action as much as we can," Angels manager Mike Scioscia said. "We matched up some good offensive baseball with a great effort from Dan."
Haren (9-10) pitched seven innings and allowed just an unearned run on five hits. Haren is 6-2 with a 1.82 ERA lifetime at Safeco Field, and is 2-0 this year without allowing an earned run.
"There's different places in the league I've felt good at," Haren said. "I don't know what it is with this place, but it's been good."
Millwood (4-12) was finished after five innings, allowing nine hits, five runs, four walks and one strikeout. He went 0-4 in August.
Trout set the Angels' rookie record for runs scored with his 104th run in his 109th game on Albert Pujols' infield single in the second inning. Trout passed Devon White, who scored 103 runs in 159 games in 1987. The record-breaking run put Anaheim in front 4-1.
Morales' single in the fourth drove in Trout for a 5-1 lead.
Trout has scored three-plus runs 10 times this season, the most since Sammy Sosa did it 11 times in 2001.
Hunter's four hits matched his season high and he is 10-for-13 his last three games. It was the third time this year Hunter had four hits.
"Cut my swing down, make sure I get on base for Albert Pujols," Hunter said. "I've never had a guy like that hit behind me, not since David Ortiz with the Twins in 2002. I was always hitting behind the [Joe] Mauer, [Justin] Morneaus and Vladimir Guerrero over here, but I never hit in front of a guy of that caliber."
Millwood was behind hitters throughout the bumpy first hitting. Morales hit his 18th home run of the year on a 2-1 pitch to drive in Hunter, who had singled on a 3-1 pitch, and Pujols, who walked.
"It wasn't very good from the first pitch," Millwood said.
Hunter's sixth-inning double down the third base line off Carter Capps scored Trout, who had singled and stole second, to put the Angels up 6-1. Callaspo doubled home Aybar, who had tripled, in the ninth against Lucas Luetge. Bobby Wilson then hit his third home run.
The Angels' defense helped Haren through the first three innings with two flashy double plays. Maicer Izturis started a 4-6-3 double play in the second when he backhanded a grounder from Trayvon Robinson heading up the middle, then shoveled the ball with his glove to Aybar.
An inning later, Callaspo snared a brisk grounder from Gutierrez several steps behind the third base bag to start a 5-4-3 double play.
"That's really the difference in the game," Haren said. "I just felt a lot of times this year, I was close to turning the corner and those balls would get by and the game would be different. Tonight, two great double plays in the early innings, then we added on."
After missing the past five games with a groin strain, Michael Saunders was back in the Seattle lineup until the fourth inning Friday. Eric Thames replaced him in the fifth after Saunders appeared to aggravate the injury when catching a flyball.
"It's nothing worse," Seattle manager Eric Wedge said. "I didn't want to take any chances on it."
Seattle has hit 28 home runs in August, the most since hitting 29 in September of 2009. August was the second losing month of the season for the Angels (8-15 in April). Seattle manager Eric Wedge said the plan as of Friday was to let the organization's respective minor league teams finish their seasons before calling players up when rosters expand Sept. 1. Triple-A Tacoma finishes Sept. 3.