The Orioles announced the deal Friday but did not disclose financial terms. A source confirmed to ESPN that the deal, which was contingent on Trumbo passing a physical, is worth $37.5 million.
"We are happy that we were able to bring Mark Trumbo back to the Orioles," team executive Dan Duquette said in a statement. "We like his presence in our lineup and professional work ethic along with the elite power he brings to our ballpark."
FanRag first reported news of an agreement between the two sides on Thursday.
Trumbo, 31, led the big leagues with 47 home runs in 2016, helping the Orioles reach the postseason for the third time in five years. It was the first career playoff appearance for Trumbo, who was named an All-Star for the second time.
Following the season, Trumbo received a one-year, $17.2 million qualifying offer from the Orioles.
Trumbo was an 18th-round pick of the Angels in 2004. Since debuting in 2010, the 6-foot-4, 225-pound slugger has played for four teams, compiling a lifetime average of .251 with 178 home runs in 849 games.
A first baseman and outfielder, Trumbo started 95 games in right field for the Orioles in 2016. He ranked fourth among AL right fielders with 10 assists, but accounted for minus-9 runs saved, second worst at the position.
ESPN's Jim Bowden, Jerry Crasnick and Eddie Matz contributed to this report.