Martin Paterson's 12th goal of the season moved Scunthorpe closer to safety, while denting Charlton's promotion push.
The striker came off the bench to fire past Nicky Weaver after Yassin Moutaouakil had fluffed a clearance.
Scunthorpe, who move within a point of safety, had to play out the last 16 minutes with 10 men after Andy Butler picked up a second booking.
The Addicks had a late chance, but Chris Iwelumo fired at Joe Murphy.
Scunthorpe manager Nigel Adkins:
"We put our heads in where the boots were flying. I have total belief in all the players and I am very proud of what they have achieved.
"This is a results driven business but we want to play football. Maybe today wasn't one of our best footballing performances but we got the result.
"No-one thought we would compete at this level and hopefully no-one can argue with that. We've evolved as a side, we're an entertaining side and we have an average age of 22."
Charlton manager Alan Pardew:
"The goal came from a mistake, but the chances we had today shouldn't mean
that we have a nil next to our name.
"We should have scored today but it was a totally committed performance from both sides.
"But the game was separated by an error. The player has held his hands up to the team afterwards. He missed his kick."
Scunthorpe: Murphy, Byrne, Crosby, Butler, Williams, Cork, Goodwin, McCann, Hurst (Paterson 52), Horsfield (Morris 81), Hayes (Hobbs 75).
Subs Not Used: Lillis, May.
Sent Off: Butler (74).
Booked: Butler, Paterson.
Goals: Paterson 63.
Charlton: Weaver, Moutaouakil (McLeod 87), Bougherra, McCarthy, Youga, Sam (Thomas 46), Zhi, Holland, Ambrose, Gray, Varney (Iwelumo 62).
Subs Not Used: Randolph, Semedo.
Booked: Varney, Bougherra, Youga.
Att: 6,084.
Ref: Andy Penn (W Midlands).
Bookmark with:
What are these?