The 43-year-old Algarvian finished behind Yusuke Suzuki from Japan to take his place in the history books.
“I often wake up in the morning and think I’m still twenty-years-old. A lot of people did not believe I could get this result,” he said at the end of the race.
Japanese Yosuke Suzuki, world record holder of the 20km walk, won at 4: 04.20 hours. Vieira came in at 4: 04.59, three seconds ahead of Canadian Evan Dunfee.
“It’s the medal of my career, at 43 I am still here, I’m happy for all the people who work with me, day by day and still believe in my work,” said Vieira, who is still hoping to attend the 2019 Olympics and World Cups.
The 11.30pm start time of the race was criticised by Vieira who said: “That’s the time to leave a nightclub. I usually go to sleep at ten o´clock in the evening”.