Diego Simeones sida kapitulerade en 15-match oslagbar körning när Brasilien sköt hem en 88-minuters volley.
En dragning skulle ha sett Attetico klättra över Barcelona till toppen går in i 10-dagars vinterlovet.
Men de var tvungna att hålla fast vid efter att ha förlorat skeppare Gabi Fernandez till två gula kort i loppet av fem minuter tidigt i andra halvlek.
I ett ibland dåligt humör möte, besökarna var upp mot det från det ögonblick Fernandez varnades för en foul, sedan beordras i 56: e minuten efter att ha begått en handboll nära halvvägs linje.
Charles såg två första-halva chanser som räddades av Atletico Keeper Jan Oblak i ett spel kort på tydliga öppningar.
Men Brasilien hade sista ordet, hitta nätet med hjälp av en avböjning off försvarare Diego Godin för sitt sjätte mål för säsongen.
Barcelona har ett spel i hand efter att vara utan en inhemsk fixtur på grund av deras engagemang i Club World Cup final mot River Plate.
Atletico Madrid missade en chans att gå toppen av La Liga efter att falla till en sen vinnare från Malaga strejkare Charles.