Spence made 63 appearances for Middlesbrough before joining Nottingham Forest on loan
The England Under-21 right-back spent last season on loan with Nottingham Forest, helping them secure promotion to the Premier League.
Spence, 21, has signed a five-year deal that incudes an initial fee of £12.5m and £7.5m in add-ons.
"I bring excitement, skill, speed. I just want to excite the fans and play well," he said.
Spence is Spurs manager Antonio Conte's sixth signing of the summer, following goalkeeper Fraser Forster, defender Clement Lenglet, midfielder Yves Bissouma and forwards Ivan Perisic and Richarlison.
Spence, who joined Middlesbrough from Fulham's academy in 2018, scored three goals in 46 games in all competitions for Forest last season.
He was named in the EFL Championship Team of the Season and the PFA Championship Team of the Year, having won the Championship player of the month and goal of the month awards for March.
Spence said: "Last year was a great season, the stuff of dreams really.
"To play in the Premier League is a dream come true.
"I am just thankful that I have got here and I am going to get an opportunity to play in the Premier League at a big club like Tottenham."
-- Courtesy of BBC Sport