Wigan took advantage of some sloppy Charlton defending to claim a fourth consecutive Premiership victory.
McCulloch shoots the Latics ahead at the JJB Stadium
Lee McCulloch latched on to keeper Chris Kirkland's long punt to open the scoring and another Kirkland clearance saw Henri Camara volley Wigan's second.
Arjan de Zeeuw put through his own net attempting to tackle Darren Bent to give Charlton hope after the restart.
But substitute Matt Jackson headed a third for Wigan, who held on despite Marcus Bent's injury-time cross-shot.
Iain Dowie's Premiership strugglers were looking to record back-to-back Premiership wins for the first time in 45 games, having beaten Manchester City last time out.
But in truth that looked highly unlikely from the 13th minute when McCulloch latched onto Kirkland's 80-yard clearance and lashed the ball past a bemused Scott Carson.
Addicks skipper Luke Young had already had to clear a McCulloch effort off the line following a dangerous Kevin Kilbane corner.
And Wigan, playing with the wind behind them, were on top for the most of the first half - although neither side created much in front of goal.
But four minutes from the break Camara doubled the home side's lead with another goal that much-maligned long-ball fan Charles Hughes would have been proud of.
Kirkland launched another hopeful punt upfield and the ball found its way to Camara who smashed a first-time looping half-volley over Carson.
Carson, who had been on the receiving end of a late high challenge from McCulloch early on the game, would have been forgiven for thinking it was Groundhog Day at the JJB Stadium.
For the second time in 45 minutes his defence simply went missing trying to defend a straight ball upfield.
Darren Bent was looking lively but with precious little support in attack, the Londoners hardly threatened the home goal.
Jerome Thomas blazed wildly over the bar from 25 yards and Hermann Hreidarsson was unable to make a decent contact with Andy Reid's free-kick but that was as good as it got for the visitors.
Jimmy Floyd Hasselbaink, scorer of two goals in the midweek Carling Cup win over Chesterfield, came off the bench to partner Darren Bent in attack after the break.
And Dowie's tactical change paid dividends within seven minutes of the restart when Darren Bent raced through on goal after a terrible blunder by Andy Webster.
Latics skipper De Zeeuw raced across to tackle the England striker but only succeeded in lifting the ball over Kirkland.
Darren Bent had a great chance to level the game soon after but this time Kirkland blocked his shot.
The midfield deadlock continued with Wigan happy to wait for a counter-attack goal or seal the points from a set-piece.
Jackson seemed to have done the latter, glancing home a fine header from Kilbane's excellent inswinging corner from the right flank.
But there was still time for Marcus Bent to fire home in stoppage time for the visitors.
Wigan manager Paul Jewell:
"It's no mean feat to have got four Premiership wins on the spin.
"I was disappointed with the goals we conceded and they were schoolboys errors but we kept on going.
"We have got back to what we were good at and have got back to the fundamentals. We also have pace in attack and used it well."
Charlton boss Iain Dowie:
"We have given away two mad goals and then once we are chasing the game it leaves us in a vulnerable position as they played on the counter.
"We must start games with a great desire and intensity and not wait to be two goals down before we start playing.
"The game was reasonably close and on the positive side my team showed plenty of spirit and commitment."
Wigan: Kirkland, Boyce, De Zeeuw, Webster (Jackson 75), Baines, Cotterill (Valencia 57), Landzaat (Wright 60), Scharner, Kilbane, Camara, McCulloch.
Subs Not Used: Filan, Johansson.
Booked: Scharner, Cotterill.
Goals: McCulloch 13, Camara 41, Jackson 78.
Charlton: Carson, Young, Diawara (Kishishev 75), El Karkouri, Hreidarsson, Ambrose (Marcus Bent 84), Holland (Hasselbaink 46), Faye, Reid, Thomas, Darren Bent.
Subs Not Used: Andersen, Sankofa.
Goals: De Zeeuw og 52, Marcus Bent 90.
Ref: D Gallagher (Oxfordshire).