The 22-year-old, who scored during his England debut against Montenegro last week, has agreed terms that will keep him at White Hart Lane until 2017.
The winger has made 10 appearances for Spurs this season, scoring once.
Townsend wrote on Twitter: "Delighted to have signed a new contract with spurs! The perfect end to the perfect week!! Now let's get 3points on Sunday!"
Townsend scored two goals in 12 appearances during a loan spell with Queens Park Rangers last season.