Nadeem threw his arms up in celebration after breaking the Olympic record on his second throw with a stunning 92.97 metres - the best in the world this year.
Chopra, comfortably ahead in qualifiers and favourite to win, looked off his best form. His best of 89.45 was also his only valid attempt as he fouled on his five other attempts.
Grenada's Anderson Peters won bronze with 88.54, a redemptive moment for the two-time world champion after he failed to make it to the final at the Tokyo Games three years ago.