Iniesta had recently been linked with a move to Manchester United but has now committed his future to the La Liga champions until he turns 34.
The contract also includes an option for further extensions.
"The FC Barcelona president (Sandro Rosell) has confirmed that Andres Iniesta, who was on contract until 2015, will now be staying at FCB until June 30, 2018," read a statement on the club's official website.
"In 479 official appearances, Iniesta has won 21 trophies at the club."
Rosell himself was delighted to retain one of the club's star performers.
"We are very, very happy," he said.
"I think this is a great Christmas gift for all Barcelona fans."
Amazing. It's only a couple of weeks ago stories were being circulated that he might be interested in moving to the Premier League. It's always as if it was some kind of negotiating tool- fictionalemu