Leonardo started at the Nova Safra football school in Rio de Janeiro and was raised in the Jacarezinho neighbourhood, which is also the area where Romário spent his early years. In 1994, at the age of 11 Leonard's football talent was discovered by Jos de Putter who directed the documentary "Solo, de wet van de favela" about him and another young player, Anselmo, from the slums of Rio de Janeiro. The documentary focuses on how football plays a significant role in getting young people out of the hopeless living conditions that many young inhabitants of the slums live everyday.
Following the attention the film brought Leonardo, he moved to Rotterdam to play in Feyenoord's youth academy setup at Varkenoord. Leonardo made his debut for Feyenoord on 19 August 2000 in a 2–0 victory over AZ Alkmaar at the age of 17. Leonardo's debut sparked controversy for himself and Feyenoord as FIFA regulations for the status of players under article 19 dictate "international transfers of players are only permitted if the player is over the age of 18" when it comes to non European Union players. It turned out Leonardo had been misinformed and misrepresented which resulted in a forged Portuguese passport being handed to Leonardo that made Feyenoord believe they could play Leonardo when he was only 17. Leonardo had to wait until he turned 18 to play in Feyenoord's first team again. He scored his first goal in the match versus SC Heerenveen, which ended in 2–0. His second goal he scored in the away win against arch rivalsAjax. In his first two seasons at Feyenoord he played 44 matches and scored four goals. He was part of the Feyenoord squad that won the 2001–02 UEFA Cup, playing as a substitute in the final.
He joined NAC Breda in January 2006 on a 1.5-year deal. He helped NAC Breda to stay in the Eredivisie by scoring 8 goals in 14 matches in the regular season, which made him top goal scorer at the club.
Ajax
In December 2006 Leonardo agreed with Ajax on a new 2.5-year contract. On 21 January 2007, he played his first Ajax Eredivisie game against FC Utrecht Six weeks later in the game against SC Heerenveen he suffered a heavy injury tearing the anterior cruciate ligament in his right knee, which sidelined him for at least six months.
In July 2014 Leonardo was contracted by German 2. Bundesliga club 1860 Munich. While he regularly played at the start of the 2014–15 season under coach Ricardo Moniz and managed to score twice, he was dropped from the squad after Markus von Ahlen took over the coaching position in September. His contract was terminated on his own wish in the end of November 2014.