The home side took the lead against the run of play when Boa Morte's free-kick caught the Charlton defence completely by surprise.
Darren Bent should have put Charlton in front moments after Euell's equaliser but Antti Niemi kept the striker at bay. Then Charlton's defence backed off and paid the price as Boa Morte grabbed the winner.
The frenetic pace eased up after the break. It took a marvellous double save by Niemi to deny Charlton a share of the spoils.