The 34-year-old's previous deal was due to expire in the summer, which would have made him available for a free transfer.
However, following talks with president Sandro Rosell, the centre-back has agreed fresh terms until June 2016 at the Camp Nou.
"This Tuesday afternoon the Barca captain signed his contract extension that will keep him at the club through June 30 of 2016," read a statement on the club's official website.
"The ceremony was attended by Carles Puyol, his representative, president Sandro Rosell, vice-president Josep Maria Bartomeu and sporting director Andoni Zubizarreta."
Puyol has made 14 appearances this season, scoring two goals.