The 35-year-old Spain international had a contract with Barca until 2016 but has reached an agreement with the club to rescind the final two years of the deal.
Puyol, who has spent his entire career at Barcelona and made his first-team debut in 1999, made the announcement at a press conference on Tuesday afternoon.
He said: "I want to announce that at the end of the season I will no longer be a Barcelona player.
"There are three months of the season left and I will not give up. I will help the team."
The defender, who only signed his contract extension with Barca a year ago, has seen his career disrupted by injuries.
In his career he has suffered a total of 36 injuries in 15 campaigns with the first team, eight of which have been knee problems.
This season he has been limited to just five appearances in La Liga, one in the Champions League and six in the Copa del Rey.
He said: "After two recent surgeries, it has become harder for me to recover the level that I demand of myself and that I need to be at to play here."
As to what he plans to do after leaving the Nou Camp, Puyol admits he is not sure yet - save to take a break.
"I don't know what I will do after June 30," he said. "But I'm sure than in the summer I will rest.
"I would like to have a press conference at the end of the season to say a proper goodbye after a total of 19 years at the club."
Puyol came through Barca's youth ranks and made his Primera Division debut in the 2-0 victory at Real Valladolid in October 1999.
He has made 593 appearances for the Catalan giants and is the second most capped player in the club's history behind current team-mate Xavi.
During his time with the first team, Puyol has won numerous trophies, including six La Liga titles, three Champions League crowns, two Spanish Cups and two FIFA Club World Cups.
The veteran central-back was also a pillar of the Spanish national side, making 100 appearances for La Roja between 2000 and 2013.
Puyol was a member of Spain's triumphant teams at Euro 2008 and the World Cup two years later.
He missed Euro 2012 with a knee injury and made his last appearance for Spain in a friendly against Uruguay in February 2013.