Danny Green should have fired the League One leaders into the lead in the 33rd minute when he broke clear on goal, but the winger placed his low shot wide of Alex Cisak’s post.
Oldham offered little going forward, but were still able to force the first save of the game when Chris Taylor’s long-range effort was tipped over the crossbar by Ben Hamer.
Bradley Wright-Phillips hit the side-netting within a minute of the restart to hint at a more promising second period and then the prolific striker was denied by a crucial save from Cisak as he attempted to round the Oldham goalkeeper.
Charlton’s early second-half pressure eventually paid off as the leaders went in front on the hour when Matt Taylor’s right-wing cross was headed home by Russell from six yards.
But Oldham were back on terms six minutes from time as Morais drilled home a stunning shot from 15 yards beyond Hamer.