Born in Amarante, Porto District, Vieira played lower league or amateur football until the age of 23. In the summer of 2013 he signed with Segunda Liga club C.D. Aves, making his professional debut on 18 August in a 1–1 away draw against U.D. Oliveirense where he played the full 90 minutes.[2] In his second season, he scored a career-best four goals (in 40 matches) to help his team to the 18th position, still above the relegation zone.[3]
In June 2015, Vieira moved to the Primeira Liga after signing a two-year contract with F.C. Paços de Ferreira.[4] His maiden appearance in the competition took place on 30 August of that year, when he came on as a 42nd-minute substitute in a 1–1 home draw with F.C. Arouca.[5]
Vieira scored four times again in the 2017–18 campaign.[3] One of those goals came on 11 March 2018 as the hosts defeated eventual champions FC Porto 1–0,[6] being nonetheless relegated as second-bottom.[7]
On 17 July 2018, Vieira moved abroad for the first time in his career after agreeing to a three-year deal with Segunda División side CD Lugo.[8] On 30 July of the following year, however, he was transferred to İstanbul Başakşehir F.K. of the Turkish Süper Lig.[9]
^"Paços e Arouca dividem pontos (1–1)" [Paços and Arouca share points (1–1)] (in Portuguese). F.C. Paços Ferreira. 30 August 2015. Retrieved 16 September 2017.
^"Olá Miguel!" [Hello Miguel!] (in German). Wolfsberger AC. 3 February 2020. Retrieved 30 November 2020.
^De Jonge, Martijn (6 October 2020). "Welkom op de Freethiel, Miguel Vieira!" [Welcome to Freethiel, Miguel Vieira!] (in Dutch). Waasland-Beveren. Retrieved 8 October 2020.