The deal runs through the end of the 2019-20 season and has an average annual value of $4.65 million, the team said Tuesday in a release.
MacArthur, a 29-year-old native of Lloydminster, Alta., scored a career-high 24 goals and had 31 assists in 79 games last season. He also set career highs with a plus-12 rating and 78 penalty minutes.
In 482 career regular-season NHL games with Buffalo, Atlanta, Toronto and Ottawa, MacArthur has 268 points (117-151) and 307 penalty minutes.
MacArthur was Buffalo's third-round pick (74th overall) in the 2003 NHL Entry Draft.