Messi was initially under contract with the Camp Nou side until 2016, but Barcelona were desperate to offer the 25-year-old a new deal following his impressive performances this calendar year.

The Argentina international has already netted 90 goals for club and country in 2012, and currently leads the La Liga scoring charts with 25 strikes in 16 games.

He is now contracted to Barcelona until at least 2018.

Puyol's previous contract was due to expire at the end of the 2012-13 campaign, but the 34-year-old defender will remain at Barca for three additional seasons.

The centre-back recently returned to full match fitness after a spell on the sidelines due to an elbow injury.

Xavi, 32, had a deal with Barcelona until the summer of 2014, and has now reached an agreement for two more seasons after he already revealed last week that negotiations had reached the final stages.

The Spain international has been a key figure at the Catalans this season with three goals in 16 La Liga appearances.