The new contract means that Puyol, who will celebrate his 35th birthday in April, will now almost certainly end his career at the club where he has spent his footballing life, reports Xinhua.
Puyol made his first team debut for Barca in the 1999-2000 season after having spent three years previously progressing through the Barca C and B sides.
He has since made over 550 first team appearances collecting five Spanish Primera Liga titles, three Champions Leagues and two Copa del Rey titles along with two World Club Championships and various Spanish and European Supercups.
The defender was a key part of Spain's 2010 World Cup winning side, scoring the winning goal in the semi-final against Germany and is just one game short of his 100th appearance for Spain.
"I am very happy at the agreement. My idea was to continue here as long as possible and I am grateful for the effort the club has made," Puyol told BarcaTV.
"It is important for me to sign this contract, but for me, the most important thing will be to be able to see it out. I know how important it is to be in physical shape and I am clear of the fact that I have to look after myself both on and off the pitch," said the defender, who added his ambition was to continue playing until he was 40 if possible.