Born in Belo Horizonte, Minas Gerais, Pereira moved to Portugal at a young age, joining Sporting CP's youth system at the age of 14. On 18 January 2014, whilst still a junior, he made his debut as a senior with the B-team, coming on as a 46th-minute substitute for Cristian Ponde in a 1–1 away draw against C.D. Trofense for the Segunda Liga championship. He scored his first goal in the competition on 7 March of the following year, contributing to a 4–3 home win over C.D. Tondela. Early into the 2015–16 season, Pereira was first called to the main squad by newly appointed manager Jorge Jesus. His first competitive appearance took place on 1 October, as he started in a 1–1 draw at Beşiktaş J.K. in the UEFA Europa League. Late in the same month he scored his first goals as a professional, helping defeat U.D. Vilafranquense in the Taça de Portugal and KF Skënderbeu Korçë in the Europa League, being subsequently selected for the latter competition's team of the week. In the 2017–18 campaign, Matheus was loaned to fellow Primeira Liga club G.D. Chaves. He scored seven league goals during his spell, helping to a sixth-place finish. On 31 August 2018, the last day of the summer transfer window, Matheus joined 1. FC Nürnbergon loan until the end of the season after criticising José Peseiro's choice of not selecting him to the first match against Moreirense F.C. on social media. He made his Bundesliga debut 16 days later, playing 61 minutes in a 1–1 away draw against SV Werder Bremen. Matheus scored his first league goal on 30 March 2019, helping the hosts defeat FC Augsburg 3–0. He was nominated for the Bundesliga Rookie of the Season award, but his team suffered relegation after finishing last.
West Bromwich Albion
On 8 August 2019, Pereira joined West Bromwich Albion on an initial season-long loan with a view to a permanent move. He scored his first goal in the Championship on 28 September, in a 2–0 away win against Queens Park Rangers. On 20 June 2020, after the player had appeared in the required number of matches, a buyout clause was triggered and Pereira signed a permanent contract worth £9 million. The following month, he won the Supporters’ Player of the Season award after collecting 65% of the votes.