Trailing 2-0 at half time at Spotland, the hosts hit back after the interval to level through Ashley Grimes and David Ball. But Hollands' brace, either side of a Rhoys Wiggins effort, clinched the three points for Chris Powell's team.
Charlton goalkeeper Ben Hamer pulled off a fine save at full stretch to deny Pim Balkestein early on, but they opened the scoring against the run of play after 20 minutes when Johnnie Jackson crossed for Hollands to head home.
The Addicks doubled their advantage when Paul Hayes cut into the Rochdale area and his low delivery was cut out by Jason Kennedy, the ball running kindly for Wiggins to pick his spot.
Rochdale were back in it when Jean-Louis Akpa Akpro's cross was headed home by Grimes, and they levelled on the hour mark when Gary Jones' cross was chested down by Grimes and Ball slammed home from close range.
The winner arrived in the 80th minute when Jackson's inswinging corner was headed home by Hollands at the back post.