The Angels opened a key series against the division-leading Rangers by overcoming a two-run deficit and winning for the ninth time in 10 games.
Los Angeles tied it with two runs in the sixth when Trout came through with an RBI triple and scored on a sacrifice fly by Albert Pujols.
The Angels then produced two unearned runs in the seventh after two were out, getting things going when Howard Kendrick singled off starter Colby Lewis (4-4). Lewis next hit Erick Aybar with a pitch, leading to Alexi Ogando replacing Lewis on the mound.
Ogando appeared to have gotten out of the inning when Maicer Izturis grounded to second, but Ian Kinsler bobbled the ball for an error. That loaded the bases and Trout drove in two of the runners with his single to center.
Jerome Williams (6-2) lasted seven innings to get the win, giving up two runs on seven hits.
Ernesto Frieri, who began the season with San Diego and has not given up a run in his 13 appearances for the Angels, worked a perfect ninth for his third save.