Forest went in front inside five minutes when Pedro Porro failed to deal with the visitors' first corner, allowing Elliot Anderson's shot from the edge of the box to deflect off the leg of Rodrigo Bentancur and squirm through the hands of Guglielmo Vicario.
That lead seemed to have been doubled only another five minutes later when Anderson's cross found Chris Wood to tap home, only for VAR and the new semi-automated offside system to step in and rule it out, much to Spurs' gratitude.
However, after five more minutes, Wood had his goal and this time it was allowed to stand. A clever free-kick routine found Anthony Elanga on the left wing, and his cross found the New Zealand striker between centre-backs Cristian Romero and Micky van de Ven, while Vicario was caught in no man's land for the crucial header.
Tottenham ought to have pulled one back before the break with Mathys Tel firing over from close range and then Richarlison heading wide from a delicious Wilson Odobert cross. Alas, they went into half-time two goals down.
In the second half, Dejan Kulusevski had a looping header from a corner hooked off the line by Harry Toffolo, before goalkeeper Matz Sels came off his line to smother Richarlison when a loose ball fell the Brazilian's way.
With five minutes to go, Richarlison headed home following a fine cross from Pedro Porro to set up a nervy finish. Nevertheless, Forest clung on to secure three precious points and climb back up to third in the Premier League table, with Spurs all the way down in 16th.