She took the crown for India 21 years after Lara Dutta won the title in 2000, reports private broadcaster NDTV.
The 21-year-old from Punjab was accompanied by Paraguay's Nadia Ferreira and South Africa's Lalela Mswane on the podium.
Andrea Meza, Miss Universe 2020 from Mexico, presented the crown to Sandhu, NDTV said.
The Chandigarh-based model is the third Indian to take the prize. The previous winners were Sushmita Sen in 1994 and Lara Dutta in 2000.
"The biggest pressure the youth of today face is believing in themselves, to know that you are unique and that's what makes you beautiful,” Sandhu said in her acceptance speech.
“Stop comparing yourselves with others and let's talk about more important things that are happening worldwide."
Miss Universe Harnaaz Sandhu of India speaks at a news conference after winning the Miss Universe pageant, in the Red Sea resort of Eilat, Israel Dec 13, 2021. REUTERS
Sandhu, who started her journey in pageantry at the age of 17, has previously been crowned Miss Diva 2021, Femina Miss India Punjab 2019 and placed in the Top 12 at Femina Miss India 2019, according to NDTV.
She has also worked in Punjabi films like "Yaara Diyan Poo Baran" and "Bai Ji Kuttange".