The shaggy-haired centre back damaged the knee in Saturday's La Liga match at home to Espanyol and will have the operation on May 12, Barca said in a statement on their website.
"The estimated time he will be out of action is around six weeks," the statement said, adding that he would be unavailable for the Copa del Rey final against Athletic Bilbao on May 25.
The loss of Puyol would be a major blow to the world and European champions, who begin the defence of their continental title against Italy on June 10.
The 34-year-old has been a reliable presence in the Spanish back line for more than a decade and has made 99 appearances for his country, scoring the winning goal in Spain's 1-0 semi-final victory against Germany at the 2010 World Cup.
His absence would likely mean that Real Madrid's Sergio Ramos partners Puyol's Barca team mate Gerard Pique in central defence at Euro 2012.
Puyol's Barcelona team-mate David Villa is also running out of time to prove his fitness as he comes back from a broken leg.
The striker hopes to play in the Copa del Rey final on May 25, two days before coach Vicente del Bosque names his 23-man squad.