The England Under-21 right-back spent last season on loan with Nottingham Forest, helping them secure promotion to the Premier League after a 23-year absence.
Spence, 21, has signed a five-year deal that incudes an initial fee of £12.5m and £7.5 in add-ons.
He is Spurs manager Antonio Conte’s sixth signing of the summer.
Spencer, who joined Middlesbrough from Fulham’s academy in 2018, scored three goals in 46 games in all competitions for Forest.
He was named in the EFL Championship Team of the Season and the PFA Championship Team of the Year, having won a string of individual honours, including Championship player of the month and goal of the month for March.
Spurs have signed goalkeeper Fraser Forster, defender Clement Lenglet, midfielder Yves Bissouma and forwards Ivan Perisic and Richarlison since the end of last season.