Garrett Richards (9-2) allowed three runs on two hits and two walks with nine strikeouts in eight innings of work to win his fifth straight decision.
Jose Abreu hit a three-run home run for the White Sox, who had a three-game winning streak stopped. Hector Noesi (2-6) walked seven batters and allowed three hits that led to five runs in five-plus innings of work.
The opener of this three-game series had been postponed on Monday due to rain.
The Angels didn't have a hit in the game until Collin Cowgill's bunt single in the fifth, which followed Iannetta's leadoff walk. Their next hit tied the game, as Trout blasted a shot just inside the left field foul pole for his 19th home run of the season. Pujols followed with a shot over the center field wall for a 4-3 lead.
In the sixth, Howie Kendrick worked a leadoff walk and Ronald Belisario came on in relief of Noesi. David Freese then grounded out to put Kendrick in scoring position, and Iannetta chased him home with a single for a 5-3 lead.
Hamilton homered with two outs in the seventh, and Iannetta hit another RBI single in the eighth for a 7-3 advantage.
Erick Aybar's run-scoring fielder's choice in the ninth made it a five-run game.
Rich Hill came on in the ninth to finish up the game, but left after allowing the first three hitters to reach base.