The 56-year-old, who had been battling a severe liver ailment and kidney disease, died in a hospital on the outskirts of New Delhi after being admitted there last month.
“He passed away at around 11 today. He suffered a multiple organ failure. He will be taken to Varanasi for his burial,” Shahid’s son Mohammed Saif told AFP.
The former captain was rated as one of the best dribblers on the hockey field, and formed a formidable forward line with striking partner Zafar Iqbal.
But the sportsman led a low-key life after his retirement as he retreated to the north Indian city of Varanasi — his birthplace — while working for Indian Railways.
Shahid, who played in three Olympics — 1980, 1984 and 1988 — saw the national side take its first gold medal in the sport since 1964.
Tributes poured in on social media, including from Prime Minister Narendra Modi.
“In the untimely & unfortunate demise of Mohammed Shahid, India has lost a talented sportsman who played with immense passion & vigour,” Modi wrote on Twitter.
“We tried our level best to save Mohammed Shahid but sadly, neither our help nor prayers were enough to save him. Tributes to him. RIP,” he added.
Indian cricket star Sachin Tendulkar also offered condolences.
“A legend leaves us. Watching Mohammed Shahid’s magic with the hockey stick was memorable. May his soul rest in peace,” Tendulkar tweeted.