Tottenham had been locked in talks with Forest over the forward, after interest from Chelsea waned following their capture of Cole Palmer from Manchester City. Spurs chairman Daniel Levy and Forest owner Evangelos Marinakis led discussions and an agreement was reached on deadline day.
The 22-year-old arrives to help Spurs account for the departure of Harry Kane to Bayern Munich, offering competition for Richarlison up front while also able to play in wide areas.
Tottenham have signed him up on a contract to 2029 and he will wear the No22 shirt.
Johnson, who has 20 caps for Wales, was a key figure in helping Forest survive relegation last season. He scored eight goals and laid on three asissts for Steve Cooper’s side.
He wrote on social media after the deal was announced: “Absolute honour to have signed for Tottenham Hotspur. Really excited for this next chapter and can’t wait to play in front of you fans soon.”
Elsewhere on deadline day, Spurs failed to land either Conor Gallagher or Lloyd Kelly in deals which respectively relied on Pierre-Emile Hojbjerg and Eric Dier departing the club.