João Vieira (ur. 20 lutego 1976 w Portimão) – portugalski lekkoatleta specjalizujący się w chodzie sportowym.

Międzynarodową karierę zaczynał w 1994 roku od startu w mistrzostwach świata juniorów. Rok później został zdyskwalifikowany i nie ukończył rywalizacji w mistrzostwach Europy juniorów. W 1997 pierwszy raz wziął udział w pucharze świata w chodzie sportowym zajmując w Podiebradach 27. miejsce. W Budapeszcie, w sierpniu 1998, zadebiutował w mistrzostwach Europy zajmując 20. miejsce. Był zdyskwalifikowany przez sędziów i nie ukończył chodu na mistrzostwach świata w Sewilli (1999). W roku 2000 zdobył srebro mistrzostw iberoamerykańskich i ostatecznie nie wystartował w igrzyskach olimpijskich w Sydney. Dwunaste miejsce przyniosły Portugalczykowi rozegrane w 2002 roku mistrzostwa Europy, a siedemnasty był w Paryżu podczas mistrzostw świata rok później. W Atenach w 2004 roku zadebiutował w igrzyskach olimpijskich zajmując 10. miejsce. Brązowy medalista mistrzostw Europy w Göteborgu w 2006 roku. Na mistrzostwach świata w Osace (2007) był 25, a w Pekinie rok później zajął 32. miejsce w igrzyskach olimpijskich. Na ulicach Berlina zajął 9. miejsce podczas kolejnych mistrzostw świata.