In a game that took off in the second half, four goals were scored and two red cards shown.
The game started with an air of caution, Forest hoping to secure points for First Division survival and Millwall having their eye on a play-off place.
Joe Kinnear's Forest came close to taking the lead when midway through the first half Marlon King saw his powerful header ricochet off the crossbar.
In an uneventful first half and with ten minutes to go Forest's David Johnson needed treatment after a challenge from Millwall's Tim Cahill, but managed to run off his injury.
Forest nearly got the goal they deserved on the stroke of half-time, a well-timed cross from Andrew Reid found Gareth Williams whose header was parried for a corner.
After the break the Lions burst on to the attack and scored almost immediately. A fine free-kick by David Livermore from a tight angle flew past the helpless keeper who was forced to watch the ball nestle in the back of the net.
Forest struck back eight minutes later when Reid's powerful run ended with him firing a 25-yard shot home.
The referee was called into play when Daniele Dichio and Wes Morgan exchanged punches and as a result both were shown red cards.
Forest took the lead in the 69th minute when David Johnson side-stepped Andy Marshall and tapped home for Forest's second of the afternoon.
Forest missed an opportunity to go 3-1 ahead when Johnson's shot was parried by the keeper. The rebound fell to the feet of Eoin Jess who missed an open goal as he screwed his shot wide.
On-loan Nick Chadwick scored Millwall's late equaliser when the loan striker blasted a shot home after receiving a well-timed pass from Robbie Ryan.