The Nationals announced the deal Tuesday and said there was a mutual option for the 2015 season.
LaRoche's contract is worth $24 million in guaranteed money, sources told ESPN, with $10 million coming in the first year, $12 million in the second and a $2 million mutual buyout option for 2015.
"I think we both were getting tired of the process," Nationals general manager Mike Rizzo said. "We had a lot of conversations back and forth with his representative. Adam and I had a few private conversations. ... I made it clear to Adam that it's time to get this thing done. Make a decision. Our offer is what it is. It's been on the table for a while. It's time to think of your options and pull the trigger if you want to be here."
He had a superb 2012 at the plate -- .271 average, 33 home runs, 100 RBIs -- but he's 33 years old, and Washington is flush with young, emerging talent that will cost a lot of money to keep in a few years. Also, LaRoche's value was hampered on the open market because any team signing him would have forfeited a supplementary first-round draft pick to the Nationals.
LaRoche declined a $13.3 million qualifying offer from Washington early in the offseason. He reportedly had been seeking a three-year offer.
"We were in a pretty enviable position negotiating-wise because our other option was already under contract and in-house," Rizzo said. "And that allowed us to be so patient with Adam."
Now it will be the Nationals' turn to test the trade market with Morse, who lost his outfield spot when Washington acquired Denard Span in a trade in November. Morse batted .291 with 18 home runs and 62 RBIs in 102 games last year.
"We're certainly not going to give him away," Rizzo said. "But if we can make the right deal that works for Mike and for us as a franchise, we'll certainly do that deal."
Shortly after the news broke that LaRoche's deal was done, Morse tweeted: "Hey everyone, going silent for a while."
ESPN The Magazine's Buster Olney and The Associated Press contributed to this report.