Born in Ajuricaba, Brazil, Carlos Eduardo lived in the city until moving to Porto Alegre at age fourteen to join Grêmio's youth system, where he began his career and meet his future teammate, Lucas Leiva. Carlos Eduardo turned professional at the age of sixteen.
Carlos Eduardo was spotted first by a Real Madrid scout in 2005, but Real Madrid decided not to sign him as they thought he would need time to adapt to Spanish football. Despite not signing for Real Madrid, Carlos Eduardo would make a breakthrough in the first team at the club and scored on his debut on 20 May 2007, in a 2–0 win over Fluminense. In the 2007 Copa Libertadores Carlos Eduardo made it to the final, when his team Grêmio lost to Boca Juniors. He showed clever footwork, rapid turns and dangerous crosses from the left wing, scoring a memorable goal in the semi-semi final that would turn out be the clinching goal.
His impressive form linked him with German club 1899 Hoffenheim. At first, Grêmio rejected two bids from the German side. Upon leaving Grêmio, Carlos Eduardo stated he would like to return to the club one day.
On 29 August 2007, he moved for a transfer fee of 8 million euro to 1899 Hoffenheim on a five-year deal and was joined up by Demba Ba. Carlos Eduardo's transfer fee was a record move made in the 2. Bundesliga until it was broken by Massimo Bruno in 2014.
He made his debut on 3 September 2007 in a 3–2 loss against Freiburg and scored his first goal for the club in the next game on 16 September 2007, in a 3–1 win over Osnabrück. Since then, he became a regular player in the first team and at 2. Bundesliga, he was considered the best dribbler in the league. On 6 May 2008, Carlos Eduardo received a three-game suspension after video evidence showed him kicking 1. FC Köln player Roda Antar in the face, which saw Hoffenheim lost 3–1. Despite this, he led the club to promotion to the Bundesliga for the first time in history and scored six times in twenty–five appearances in all competitions.
In the 2008–09 season, Carlos Eduardo played his first Bundesliga match in the opening game of the season, in a 3–0 win over Energie Cottbus on 16 August 2008 and scored his first Bundesliga goal in a 4–1 win over Borussia Dortmund on 21 September 2008. After suffering from a concussion that kept him out for one match, Carlos Eduardo then scored and provided assist for Demba Ba in a 3–1 win over Bochum on 29 October 2008. However, on 14 January 2009, Carlos Eduardo was in a confrontation with Ivica Olić after Eduardo allegedly punched Olić during a friendly match between 1899 Hoffenheim and Hamburger SV which Hoffenheim lost 2–0. After the match, Carlos Eduardo, like Olić, was given a two match ban. Once again in a match against Bochum on 11 April 2009, Carlos Eduardo was given a red card after elbowing Philipp Bönig in a 3–0 loss and as a result of violent conduct, he was given a five match ban. After serving five game suspension, Carlos Eduardo scored and provided assist for Demba Ba, once again in a 2–2 draw against Bayern Munich and did the same thing in the last game of the season when he scored twice and provided an assist for Ba in a 3–2 win over Schalke 04 in the last game of the season. The club finished at seventh place in the league. Carlos Eduardo finished the 2008–09 season, making twenty–seven appearances and scoring eight times in all competitions.
Ahead of the 2009–10 season, Carlos Eduardo was linked with a move with Russian side Zenit Saint Petersburg after the club made 15 million bid for him in the summer transfer window. However, Carlos Eduardo decided to stay at the club by extending his contract, until 2013, thus ending transfer speculations. He started the 2009–10 season well when he scored in a 2–0 win over Hannover 96 on 29 August 2009. Carlos Eduardo played thirty–three matches and scored five times in the 2009–10 season and played almost every game except the one against Bayern Munich, due to injury. Hoffengeim finish in eleventh place in the league.
In the 2010–11 season, Carlos Eduardo continued attract interests from clubs and was told by then Brazil Manager Mano Menezes that he needed to leave Hoffenheim for a bigger club in order to be in the national team. Weeks before leaving the club, he made his last appearance for Hoffenheim in the DFB-Pokal in a 4–0 win over Hansa Rostock amid of the transfer speculation.
On 24 August 2010, he was transferred to the Russian premier league champions Rubin Kazan for a fee of 20 million euro over 18 months and signed a four-year contract. Because of his move to Rubin Kazan, Grêmio would be entitled 20% of the transfer fee.
On 11 September 2010, Carlos Eduardo made his Rubin Kazan debut and scored twice in a 3–0 win over Amkar Perm. Because of his performance, Carlos Eduardo was included in the Team of the Week in Matchday 20. Three days later, on 14 September 2010, he made his UEFA Champions League debut in a 1–0 loss against Copenhagen. However, despite his good start, he suffered a serious knee injury in November during training and missed both the 2010 and 2011–12 season.
In October 2011, he soon returned to training after an operation By January 2012, he continuously suffered pain in his knee after playing a match, resulting in an operation keeping him out of action for three or four months. In May 2012, he had recovered from his injury, but three months later he suffered a sore throat which kept him out of action for some weeks.
The following month, he made his first appearance in two years when Rubin Kazan lost 1–0 against Lokomotiv Moscow. After the match, manager Kurban Berdyev was happy for him to return, stating "For the first time, he has done quite well". After his return, Carlos Eduardo struggled to fight for his place in the first team, due to loss of form and on 27 November 2012, in a match against Volga Nizhny Novgorod, Carlos Eduardo was involved in an incident with Aleksei Sapogov during the match. As a result, Carlos Eduardo apologised to Volga supporters for his action and Sapogov ended up banned for three matches. Carlos Eduardo's action was criticised and at one point, described as "acting like a girl".
After his loan spell at Flamengo came to an end, Carlos Eduardo returned to the first team and made his first Rubin Kazan appearance after two years, coming on as a substitute for Pavel Mogilevets in the 78th minute, in a 2–1 win over CSKA Moscow on 23 August 2014. After making his return, Carlos Eduardo scored two goals in two games against Torpedo Moscow and Mordovia (which he also scored again in another encounter). In the January transfer window, Carlos Eduardo was linked to a move to German club's Schalke 04 and Köln. Köln made a 3.5 million euro bid for Carlos Eduardo, but the move was rejected. After this, Köln's interests signing him ended. Carlos Eduardo ended the season making twenty-two appearances and scoring three times for the club.
In the 2015–16 season, Carlos Eduardo managed to regain his first team slot at Rubin Kazin at the start of the season and scored his first goal and set up one of the other goals, in a 3–1 win over Lokomotiv Moscow on 12 September 2015. After he desired to leave Rubin Kazan in the January transfer window, Carlos Eduardo was on a verge of moving back to his old club, Hoffenheim, but they could not agree on his salary. He stayed at the club for the rest of the season and made a handful appearances for Rubin Kazan until he dropped from the first team for the rest of the season. Carlos Eduardo ended the 2015–16 season making twenty–five appearances and scoring two times in all competitions.
On 19 April 2016, Carlos Eduardo and the club reached an agreement to terminate his contract, ending his six-year-spell.
On 25 January 2013, Carlos Eduardo returned to Brazil after a five-year absence by joining Flamengo on loan and stayed for one and a half year, until 30 June 2014, while also extending his contract with Rubin Kazan until the summer of 2016. Upon joining Flamengo, Carlos Eduardo was presented with a number ten shirt ahead of a new season. But was given number twenty shirt instead, as Gabriel Santana Pinto took number ten shirt.
Carlos Eduardo made his Flamengo debut on 6 April 2013, in a 1–1 draw against Duque de Caxias, but suffered a muscle injury in the process. After a treatment, it was announced that Carlos Eduardo would be out for a month. After recovering from injury, he made his league debut in the opening game of the season, coming on as a substitute in the 75th minute, in a 0–0 draw against Santos. However, Carlos Eduardo struggled to regain his first team place, he was mainly put on the substitute bench and made twenty–four appearances for Flamengo. Despite this, Carlos helped the club win the Copa do Brasil.
Though he helped the club win the Campeonato Carioca at the start of the season, Carlos Eduardo made only two appearances for the club. On 14 May 2014, Carlos Eduardo had his loan contract with Flamengo terminated, just one month before it was about to expire.
The day after leaving Rubin Kazan, it was announced on 20 April 2016, Carlos Eduardo made his return to Brazil permanently, signing for Atlético Mineiro, He became the club's ninth signing of the season.
On 14 May 2016, Carlos Eduardo made his Atlético Mineiro debut, in the opening game of the season, where he played 56th minutes before being substituted, in a 1–0 win over Santos, After the match, he stated his satisfaction to make his debut.
After making three appearances for Brazil U20, it was announced on 27 October 2009 that Carlos Eduardo received his first call up for the Seleção. Carlos Eduardo said he was in tears upon learning that he was called up for the national team.
After the injuries of Luís Fabiano and Elano, Carlos Eduardo and Grafite were brought into the squad against Republic of Ireland. He played that match as a substitute.
In May 2010, Dunga used all the players of Ireland match to form the 23-men provisional 2010 FIFA World Cup squad, except Adriano and Carlos Eduardo, and added Luís Fabiano, Elano and Gomes back to the squad. Carlos Eduardo remained in the squad, but as one of the seven backup players for the main squad. It wasn't until 23 September 2010, when Carlos Eduardo was called up for the national team.
Carlos Eduardo is friends with Wellington Luís de Sousa since they were fifteen while being at Grêmio.
Carlos Eduardo's father was an electrician and stopped working around the same time his son became a footballer. Eduardo has used a significant amount of his salary to support his family. Carlos Eduardo is Christian, having stated he read the Bible and do sign of Cross before playing. While playing for Rubin Kazan, Carlos Eduardo resided in Kazan and described the city as "safe".Grêmio
Campeonato Gaúcho: 2007
Copa do Brasil: 2013
Campeonato Carioca: 2014
Campeonato Mineiro: 2017