The 26-year-old's current deal was due to expire at the end of this season, but he has been rewarded with a new contract after producing some impressive displays in the Premier League this term.
Puncheon has made 26 appearances for Saints in the current campaign and netted six goals, scoring in the wins over Aston Villa, QPR, Reading and Manchester City as well as the draw at Chelsea.
After putting pen to paper on his new contract, Puncheon told the club's official website: "It feels amazing.
"It's obviously been a worry because my contract was up at the end of the season, so it was important for me to get tied down.
"It's a weight off my mind, so now I can look to the long-term future. The club has a vision, and that's why I've signed and stayed on.
"We got to the Premier League in three years, and now the club has a vision of playing European football - and we want to get there as soon as possible."
Puncheon joined Southampton from Plymouth in February 2010 but struggled to break into the first team initially and has spent time on loan with Millwall, Blackpool and QPR in the last two seasons.