Following a brief youth spell with local Porto in his hometown, where he was deployed as a central defender, João Mário moved to Sporting CP in 2004 at the age of 11, going on to complete his development with the Lisbon club.
[5] João Mário's first full season as a senior was 2012–13, as he appeared in 31 games (30 as a starter) for Sporting CP B in the Segunda Liga, with the team finishing in fourth position.
[9][10] His maiden appearance in Serie A occurred on 11 September when he played the full 90 minutes in a 2–1 victory at Pescara,[11][12] and his first goal for the team opened a loss by the same score at home to Cagliari on 16 October.
[17] He made his debut two days later, replacing Pablo Zabaleta at half-time in a 2–0 away loss to Wigan Athletic in the fourth round of the FA Cup.
[28] He scored his first competitive goal on 10 August, opening the 2–0 home victory over Spartak Moscow in the third qualifying round of the UEFA Champions League.
[34] João Mário scored his first career hat-trick on 29 November 2023, with all goals coming in the first half of an eventual 3–3 home draw against his former club Inter Milan in the Champions League group phase; he also became the first player to achieve the feat for Benfica in the competition's format.
[38] He made his senior debut on 11 October 2014, replacing Cristiano Ronaldo for the final 14 minutes of the friendly against France in Paris: soon after coming on, he was fouled by Paul Pogba for a penalty converted by Ricardo Quaresma, in an eventual 2–1 loss.
[39] João Mário represented Portugal at the UEFA European Under-21 Championship in 2015, netting the only goal of their opening group win over England[40] as the tournament ended with a runner-up finish.