The winger's future had recently been under scrutiny due to the player's original deal expiring at the end of the current campaign.
"It feels amazing," Puncheon told the club's official website. "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."
Manager Mauricio Pochettino added: "It's great news that Jason has agreed to sign a new contract with Southampton. He has been very impressive for the club this season and especially so since I arrived, and he is a very important member of our squad."
Puncheon moved to St Mary's in 2010.