Born in São Paulo, Gabriel played for Corinthians and São Paulo's youth systems, but was released by the latter in December 2011 due to his height.[2] He then graduated from Portuguesa's youth categories, and made his first team debut on 28 August 2013, playing the last 12 minutes of a 0–0 draw at Bahia for that year's Copa Sudamericana.[3]
On 25 January 2014 Gabriel played his second game for Lusa, coming on as a late substitute in a 0–1 loss at XV de Piracicaba.[4] Roughly a month later he scored his first professional goal, netting the winner in a 2–1 home success over Comercial.[5]
In 2014 Série B, Gabriel was an undisputed starter for the club, appearing in 29 matches and scoring four goals, but his side was eventually relegated. He was also elected as one of the ten newcomers of the campaign by Globo Esporte.[6]
Cruzeiro
On 10 February 2015 Gabriel agreed his wages with Cruzeiro,[7] with an agreement between Raposa and Portuguesa being reached three days later.[8] He was presented on the 19th, signing a four-year deal.[9]
Gabriel made his debut for Raposa on 28 February 2015, playing the last 22 minutes in a 3–0 away win against Tupi. His Série A debut on 10 May, starting in a 0–1 home loss against Corinthians.
Gabriel scored his first goal in the main category of Brazilian football on 6 June 2015, netting his team's second in a 3–1 away win against fierce rivals Atlético Mineiro.
Nagoya Grampus
On 18 July 2017, Gabriel signed for Nagoya Grampus on loan.[10] extending his loan deal until the end of the 2018 season on 26 December 2017.[11]
On 28 December 2018, Gabriel signed permanently for Nagoya Grampus.[12]