Charles speelde in de jeugdopleiding van Santos en Tuno Luso in zijn geboorteland Brazilië en in 2001 maakte hij de overstap naar het Portugese Feirense. In 2004 verkaste de aanvaller naar Pontevedra, dat hem in 2007 verhuurde aan 2 de Mayo uit Paraguay. In de zomer van 2010 werd de Braziliaan overgenomen door Córdoba, dat hem transfervrij overnam.[1] In zijn eerste seizoen schoorde hij vijftien keer en het seizoen erop kwam hij tot acht treffers. Na twee seizoenen verkaste Charles naar Almería.[2] Daar scoorde hij in één seizoen tweeëndertig doelpunten en daarmee werd hij topscorer van de Segunda División.
Op 27 juni 2013 tekende de Braziliaan voor vier jaar bij Celta de Vigo, waar hij de naar Liverpool vertrokken Iago Aspas moest vervangen.[3] Hiervan zou hij maar twee jaar volmaken, waarna hij vertrok naar Málaga.[4] Na afloop van zijn tweejarige verbintenis, tekende hij voor één seizoen bij Eibar.[5] Na dat seizoen werd het contract met een extra jaar verlengd.[6] In april 2019 kwam er opnieuw een jaar bij.[7] Nadat dit contract was afgelopen verkaste Charles naar Pontevedra.[8] In de zomer van 2023 besloot Charles op negenendertigjarige leeftijd een punt te zetten achter zijn actieve loopbaan.[9]