Lee Gregory's penalty after Jake Cooper was fouled put Millwall ahead and Gregory then set up Aiden O'Brien.
But Rochdale were level before the break as Nathaniel Mendez-Laing's volley into the corner was followed by Ian Henderson scoring from close range.
Callum Camps swept in to put the hosts ahead, before Jed Wallace blasted into the roof of the net to equalise.
The draw sees Millwall move level on points with sixth-placed Southend, while Rochdale remain 10th, six points adrift of the play-offs.
After Dale's Mendez-Laing was denied by the legs of Jordan Archer in the first minute, Millwall scored two goals within 11 minutes of each other, before Steve Morison missed a great opportunity for a third as he put his close-range shot wide.
Mendez-Laing's low drive into the corner reduced the arrears and Henderson equalised shortly after seeing his overhead shot shave the post, while Camps put the home side in front when the visitors failed to deal with a corner.
Millwall pushed for an equaliser and O'Brien's volley was spectacularly saved by Rochdale keeper Conrad Logan, before Wallace drew his side level scoring at the back post.
Match ends, Rochdale 3, Millwall 3.
Second Half ends, Rochdale 3, Millwall 3.
Attempt saved. Lee Gregory (Millwall) right footed shot from the centre of the box is saved in the centre of the goal.
Attempt blocked. Tony Craig (Millwall) header from the centre of the box is blocked.
Corner,  Millwall. Conceded by Joe Bunney.
Corner,  Millwall. Conceded by Joe Bunney.
Substitution, Millwall. Fred Onyedinma replaces Aiden O'Brien.
Corner,  Millwall. Conceded by Joe Bunney.
Attempt saved. Jed Wallace (Millwall) right footed shot from outside the box is saved in the top left corner.
Substitution, Rochdale. Oliver Rathbone replaces Callum Camps.
Foul by Ian Henderson (Rochdale).
Byron Webster (Millwall) wins a free kick in the attacking half.
Attempt saved. Callum Butcher (Millwall) right footed shot from very close range is saved in the centre of the goal.
Foul by Callum Camps (Rochdale).
Shaun Williams (Millwall) wins a free kick in the defensive half.
Attempt saved. Steve Morison (Millwall) left footed shot from outside the box is saved in the centre of the goal.
Attempt missed. Nathaniel Mendez-Laing (Rochdale) left footed shot from outside the box is high and wide to the right.
Corner,  Millwall. Conceded by Callum Camps.
Substitution, Rochdale. Joseph Rafferty replaces Peter Vincenti.
Jamie Allen (Rochdale) wins a free kick in the attacking half.
Goal!  Rochdale 3, Millwall 3. Jed Wallace (Millwall) right footed shot from very close range to the centre of the goal.
Foul by Callum Butcher (Millwall).
Corner,  Millwall. Conceded by Calvin Andrew.
Corner,  Millwall. Conceded by Conrad Logan.
Attempt saved. Aiden O'Brien (Millwall) right footed shot from outside the box is saved in the bottom left corner.
Jimmy McNulty (Rochdale) is shown the yellow card for a bad foul.
Callum Butcher (Millwall) wins a free kick in the defensive half.
Foul by Jimmy McNulty (Rochdale).
Corner,  Millwall. Conceded by Peter Vincenti.
Corner,  Millwall. Conceded by Joe Bunney.
Substitution, Millwall. Mahlon Romeo replaces Shaun Cummings.
Attempt missed. Calvin Andrew (Rochdale) left footed shot from the centre of the box is too high.
Attempt missed. Calvin Andrew (Rochdale) left footed shot from the centre of the box is close, but misses to the right.
Attempt saved. Nathaniel Mendez-Laing (Rochdale) left footed shot from the centre of the box is saved in the bottom right corner.
Calvin Andrew (Rochdale) wins a free kick in the defensive half.
Foul by Shaun Williams (Millwall).
Goal!  Rochdale 3, Millwall 2. Callum Camps (Rochdale) right footed shot from outside the box to the bottom left corner following a corner.
Corner,  Rochdale. Conceded by Jed Wallace.
Tony Craig (Millwall) is shown the yellow card for a bad foul.
Ian Henderson (Rochdale) wins a free kick on the left wing.
League One promotion chasers Rochdale and Millwall took a point each in a six-goal thriller at Spotland.