Born in Arujá, São Paulo, Ribeiro joined Corinthians' youth setup in 2001, aged ten, as a left back. Promoted to the main squad in 2007 by manager Paulo César Carpegiani, he only appeared in four matches during that year, being relegated with the side.
São Caetano (loan)
On 21 July 2008, after the arrival of Wellington Saci, Ribeiro was loaned to São Caetano, being successfully converted to an attacking midfielder during his two-year spell at the side.
Coritiba
Ribeiro returned to Timão in January 2011, but was sold to Coritiba for a R$1.5 million fee on 21 February. He made eight appearances as the team won the year's Campeonato Paranaense, scoring in the third minute on 17 April to open a 4–1 win at Roma Esporte Apucarana. The following season, Ribeiro scored five times in 15 games as the team defended their title. On 6 May 2012, in the first leg of the final away to rivals Clube Atlético Paranaense, he opened a 2–2 draw. A week later, he struck the decisive effort as his team won in a penalty shootout at the Estadio Major Antonio do Couto Pereira. Ribeiro finished the 2012 campaign for Coxa as the club's topscorer in Série A along with teammate Deivid, with eight goals. On 26 August 2012, Ribeiro was sent off in a 3–1 loss at Figueirense for a foul on Fernandes.
Cruzeiro
On 8 January 2013, Cruzeiro reached an agreement with Coritiba for Ribeiro, and he signed a four-year deal three days later. Ribeiro was a key attacking unit for Raposa during his two-year spell, along with Ricardo Goulart. He was also elected Série A's best player of the year twice in a row, as his side was crowned champions twice.
Al-Ahli
After being linked to Manchester United, Milan, Monaco and Real Madrid during the 2015 winter transfer window, Ribeiro moved to Al-Ahli Dubai on 2 February 2015 for a reported €15 million transfer fee. Two days later, he made his debut in the seasons'sUAE Arabian Gulf League, opening a 2–0 home win over Al-Sharjah from Luis Jiménez's assist, a minute after replacing Habib Fardan. He won his first silverware with the club on 27 March, coming on as a substitute at the end of the Super Cup 1–0 win over Al Ain at the Mohammed Bin Zayed Stadium in Abu Dhabi. He finished the campaign with 3 goals in 12 league games. In the year's AFC Champions League, he struck 4 goals in 14 matches, including one in the semi-final second leg 4–3 aggregate victory over Al-Hilal; the team lost the continental final by one goal to Guangzhou Evergrande Taobao. On 19 August 2015, in the first game of the new national season, Ribeiro scored twice – including a penalty kick – in an 8–1 home win over Al-Fujairah, and assisted compatriot Lima for two more. His team won the league, and Ribeiro told the media that the victory justified his surprise transfer to the team.
Flamengo
On 5 June 2017, an associate of Ribeiro said that he had rescinded his contract with Al Ahli in order to return to Brazilian football. Later that day he signed with Flamengo, who paid €6 million for 100% of his economic rights, under a contract that runs until 2021. On 13 December 2019 Ribeiro extended his contract with Flamengo until December 2023.
International career
After representing Brazil in the under-20 level, Ribeiro was called up to the main for two matches against Colombia and Ecuador by new manager Dunga on 19 August 2014. He made his debut against the former on 5 September, coming on as a substitute for Willian in a 1–0 win at Sun Life Stadium, Miami. On 5 May 2015, Ribeiro was called up for the year's Copa América, held in Chile. In the quarter-final against Paraguay, he replaced goalscorer Robinho for the final three minutes of a 1–1 draw, and then missed in the penalty shootout which eliminated Brazil.