Rochdale's play-off ambitions were all but ended as they were well beaten at mid-table Charlton.
Therry Racon put Charlton ahead with a low shot from 20 yards but Marcus Holness headed in from a corner to equalise early in the second half.
Within a minute Charlton were back in front as Dean Parrett fired a shot into the bottom left corner from 25 yards.
The outcome was put beyond doubt when Paul Benson's 76th-minute cross was headed home by Nathan Eccleston.
Dale are now six points behind sixth-placed Bournemouth, with a goal difference inferior by 15 goals, with two games remaining.
Charlton boss Chris Powell told BBC London 94.9:
"I'm pleased we've done ourselves justice in front of our home fans, and today I thought the boys were magnificent.
"A lot of it has gone against us in my tenure and I think we'll get there and I think our fans have been great for us despite the tough times.
"It's about time things went for us and I feel we deserved our victory in the end."
Rochdale manager Keith Hill told BBC Radio Manchester:
"Disappointed with the result, but I thought the game plan we adopted was working up until again a mistake from one of our players.
"We get the equaliser and I think the emotion has taken over the players and you switch off mentally and we got done.
"We've missed an opportunity which might never ever come along again and they've got to learn from these experiences."