"We pressured them all afternoon," Angels manager Mike Scioscia said. "You get 15 chances with guys in scoring position, that's good. We did a lot of good things out there."
Nick Tropeano (2-3) pitched a career-high 7 1/3 innings to snap a five-start winless streak.
"Trope did an unbelievable job," Trout said. "It was a fun day for us."
Ohtani also walked twice and scored two runs. Martin Maldonado had two hits and three RBI.
The Angels scored more than three runs for the third time in their past 12 and posted their biggest output since an 8-0 win at Colorado on May 9.
"Once it starts clicking, it's going to be dangerous," Tropeano said. "It was fun to see it today, for sure."
Tropeano allowed one run and four hits, walked a season-low one and struck out six.
"Today I was getting that first-pitch strike and putting them away when I had to with runners in scoring position," Tropeano said.
The victory was Tropeano's first since April 12 at Kansas City.
"Nick was terrific," Scioscia said. "As the game went on, his fastball really got some more life to it."
Trout's 15th home run was a leadoff drive in the fifth that bounced off the top of the left field wall and went out. It came off Marco Estrada (2-5), who lost his fourth straight decision.
"I need to turn it around," Estrada said.
Pujols connected off right-hander Deck McGuire in the ninth, his seventh.
Estrada allowed four runs and seven hits in 4 1/3 innings as the Blue Jays lost for the 14th time in their past 18 home games, including eight of the past nine. Toronto has lost seven straight series, its longest streak since April 2017.
"We need to do better," Blue Jays slugger Josh Donaldson said. "It's frustrating because we all are competitors and we play the game to win. When you're not doing that, it can be frustrating."
The Blue Jays went 1-6 in a seven-game homestand against the Athletics and Angels and were outscored 43-22.
"I'm ready to get on the road, there's no doubt," manager John Gibbons said. "This was a brutal homestand for us."
Toronto's lone run came in the sixth on outfielder Dwight Smith Jr.'s first career homer.
The Angels are 16-5 on the road, the best record in the major leagues.
WALK THIS WAY
Trout drew his major league-leading 46th walk.
A security guard stationed down the left field line mistakenly picked up Upton's double in the third, thinking it was a foul ball.
The Angels lead the all-time series 209-207.
Ian Kinsler snapped an 0-for-15 slump with a double in the Angels seventh. He went 1 for 5 and is batting .190.
Trout stole a base and is 12 for 12 this season.
Angels: Ohtani's scheduled start Sunday at Yankee Stadium has been pushed back to manage the workload of the two-way rookie, manager Mike Scioscia said. Ohtani had been scheduled to pitch against fellow Japanese right-hander Masahiro Tanaka. Scioscia said Ohtani will still be available to hit against New York. Ohtani is 4-1 with a 3.35 ERA in seven starts, and is hitting .319.
Blue Jays: LHP Jaime Garcia (shoulder felt fine after throwing a bullpen and will return to the rotation Saturday at Philadelphia, Gibbons said. ... 1B Justin Smoak and OF Curtis Granderson got the day off. Kendrys Morales started at first, Yangervis Solarte was at third and Donaldson was the DH.
Angels: LHP Andrew Heaney (2-3, 3.55) starts the opener of a three-game series in New York against the Yankees. Heaney is 1-0 with a 1 .50 ERA in two career starts against the Yankees. RHP Luis Severino (7-1, 2.35) starts for New York.
Blue Jays: RHP Sam Gaviglio (1-0, 0.93) starts the opener of a three-game series at Philadelphia. It's his second start in place of injured RHP Marcus Stroman (shoulder). Gaviglio pitched 5 1/3 shutout innings against Oakland on May 19. RHP Zach Eflin (1-0, 1.56) starts for the Phillies.
More AP baseball: https://apnews.com/tag/MLBbaseball