[2] Guilherme then started out his career at Paraíba do Sul before moving to Portugal, where he joined Braga in 2009 at age sixteen.
[3] It wasn't until on 24 January 2010 when he made his SC Braga first team debut, starting the whole game, in a 4–1 win over Leiria.
During the season, he was linked a move away from SC Braga, as Juventus, Manchester City and FC Barcelona were interested in signing him.
[27] Guilherme made his Legia Warsaw debut on 14 February 2014, where he started the match before being substituted in the 74th minute, in a 1–0 win over Korona Kielce.
[28] After making another appearance, he, however, suffered a ruptured intraarticular ligament initiation in the ankle that saw him sidelined until the end of the 2013–14 season.
[31] It wasn't until on 17 October 2014 when he made his return from injury, coming on as a substitute, where Legia Warsaw beat Lechia Gdańsk 1–0.
[32] Four days later, on 22 October 2014, he made his first start as a left–back since returning from injury, in a 1–0 win over Metalist Kharkiv in the group stage of the UEFA Europa League.
[37] Three days later, on 2 May 2015, Guilherme helped the beat Lech Poznań, who went on to win the league, 2–1 in the Polish Cup final.
[40] At the start of the 2015–16 season, Guilherme remained in the first team regular for the side, where he played in the right–wing position despite competing with Michał Kucharczyk.
[41] He started the season well when he scored in the second leg of the UEFA Europa League Qualification against FC Botoșani, in a 3–0 win to advance to the next round.
[42] A month later, on 27 August 2015, Guilherme scored again in the play–offs round of the UEFA Europa League, in a 3–2 win over Zorya Luhansk to advance to the Group Stage.
[51] But he soon suffered a shoulder injury during a 2–0 win over Zrinjski Mostar in the second leg of the UEFA Champions League second round and was sidelined for a month.
[52] He then made his return from injury on 20 August 2016 against Arka Gdynia, where he came on as a second-half substitute and set up a goal for Kasper Hämäläinen, in a 3–1 loss.
[63] However, Guilherme was sidelined for a month after suffering a knee injury during a 1–1 draw against Sheriff Tiraspol in a UEFA Europa League Play–Off Round match in the first leg.
[66] It was announced on 8 December 2017 that Guilherme was not signing a new contract with Legia Warsaw and expected to leave the club when the transfer window opens next month.
[73] On 16 December 2017, Italian media Tutto Mercato Web reported that Guilherme agreed a deal to join the club.
[85] Guilherme made his Yeni Malatyaspor debut in the opening game of the season, where he started the match before being substituted in the 81st minute, in a 3–1 win over Göztepe.
[90] Despite suffering an injury and facing suspension at separate times towards the end of the year,[91] Guilherme then scored again and was sent–off later in the game, in a 1–1 draw against Bursaspor on 23 December 2018.
[92] After suffering an injury and facing suspension at separate times once again in early–January,[93] Guilherme made his return to the first team on 28 January 2019, in a 3–2 loss against Fenerbahçe.
[95] On 1 March 2021, Guilherme signed Chinese Super League club Guangzhou City on a three-year deal.
[101] Goal.com said about Guilherme, commenting: "he's a Brazilian of great creativity and imagination, able to make himself valuable for his team with a play of class or a winning assist for his teammate".
[22] During at his early career at Legia Warsaw, Guilherme also played in the left–back position, reflecting: "At this point I focus on the left defense, because I'm needed there.
[103][2] Having spent four years in Poland, he applied for the Polish Citizenship to help the club reduce the limit of foreigners in the league.
[105] Growing up in Três Rios, Brazil, Guilherme revealed that he stayed all day on the pitch that "sometime his mother came for me because I forgot about the dinner".