The 27-year-old had deals on the table from Melbourne and Brisbane, but has remained a Pie.
“Understandably, as a free agent, Jamie had some thinking to do but his importance to us, his role in the team and the support of the Collingwood environment were always clear,” Collingwood list manager Ned Guy told the club’s website.
“We share with Jamie the view that he is on the cusp of a strong new phase in his career. That his next 100 games could be better than his first 100, which were very good. We were very pleased to get last night’s call.”
Elliott has played 105 games for the Pies, booting 164 goals.