The contract is subject to a physical.
"This is a monumental day for Angel fans and I could not be more excited," Angels owner Arte Moreno said.
The deal is the second-highest in baseball history and only the third to break the $200 million barrier, following Alex Rodriguez's $252 million, 10-year deal with Texas before the 2001 season and A-Rod's $275 million, 10-year contract with the Yankees before the 2008 season.
"Albert's career performance clearly speaks for itself," new Angels general manager Jerry Dipoto. "He has proven to be the best player of his generation."
There has been speculation in the past that Pujols is older than he says he is - 31. But when asked if that was a concern, Dipoto called Pujols an honorable man and said, "I can tell you, he hits like he's 27."
Pujols had turned down an offer from the St. Louis Cardinals, the only team he has ever played for, about a year ago, but according to ESPN, they were still in the bidding as of Wednesday.
"He left a pretty good impact over there, I don't think fans will soon forget what his contributions were," said former Cardinals manager and star Joe Torre, now an executive with Major League Baseball. "I still think the St. Louis fans are going to be more appreciative than angry."
Pujols had been seeking a full no-trade clause, which his deal with the Angels includes. According to ESPN, that may have been the sticking point in negotiations with the Miami Marlins.
Sources told ESPN that the Angels jumped into the bidding late Wednesday.
Pujols led the Cardinals to a World Series title this year - his second World Series ring with the Cardinals.
The Angels followed the Pujols deal with a five-year, $77.5 million deal for pitcher C.J. Wilson of the Texas Rangers, according to ESPN.
ESPN and The Associated Press contributed to this report.