Vieira was born in Machico, Madeira. His entire ten-year professional career was spent with local C.D. Nacional, which he represented in all three major levels since being promoted to the main squad at the age of 18; during his tenure, he also acted as captain. From 2002 to 2004, Vieira competed in the Primeira Liga. His first game in the competition took place on 22 September 2002, as he came on a last-minute substitute in a 2–0 away win against S.C. Beira-Mar; in the latter season, he contributed with 19 appearances to help his team to a best-ever fourth position.
Coaching career
After retiring at the age of only 28, Vieira started working as a coach, first being named assistant manager at Nacional under Casemiro Mior. On 14 March 2011, after a spell with the club's juniors, he was handed the reins of the first team after Predrag Jokanović was fired. However, he himself was replaced by Pedro Caixinha at the end of October. On 20 January 2013, Vieira was announced as the new manager of C.S. Marítimo B, the reserves of neighbouring C.S. Marítimo. In early March 2015, after Leonel Pontes' resignation, he was appointed his successor, leading the club to the final of the Taça da Liga the following month later after disposing of FC Porto in the last-four stage; he resigned on 18 January 2016, due to poor results. On 27 May 2016, Vieira was appointed at Segunda Liga club C.D. Aves for one year. He left on 15 February 2017, with the team nine points clear in the second promotion place after a run of one point from four games. In May 2017, Vieira became manager of Académica de Coimbra and stated his aim to end their exile from the top flight. He left in November with the side in sixth and took the helm at G.D. Estoril Praia, leaving after their top division relegation. On 28 May 2018, Vieira signed a one-year deal at Moreirense FC. He left at the end of this contract, having taken the team from Moreira de Cónegos to a best-ever sixth place, and in June 2019 he was hired by neighbours Vitória SC. After finishing seventh in his only season, he announced a sabbatical to spend time with his family.