All the dead and injured were taken to the nearby 100-bed Sehwan Hospital, which was overwhelmed the sudden influx of patients, Dr. Zahid Hussain told CNN.
More 200 people were injured in the attack, and many had been transferred to bigger hospitals in other cities of Sindh province, he said.
Thousands of worshipers, including families with their children, had gathered at the more than 800-year-old shrine for the Sufi ritual of Dhamal, which involves music, chanting and prayer.
The Islamic State Khorasan, ISIS' affiliate in Afghanistan and Pakistan, claimed responsibility for the attack in a phone call to CNN.
The Amaq news agency, which is affiliated with ISIS, reported the attack was carried out by a suicide bomber in an explosives vest.
Prime Minister Nawaz Sharif called the attack "brutal."
"I have directed all the state institutions to mobilize all resources for rescue and relief after this brutal terror attack on Lal Shahbaz Qalandar's shrine," the Prime Minister said in a statement.
The spokesman for the Pakistani military blamed operatives from Afghanistan for a recent spate of attacks on the country.
The spokesman, Maj. Gen. Asif Ghafoor, tweeted: "Recent Ts (Terrorist) acts are being exec (Executed) on directions from hostile powers and from sanctuaries in Afghanistan. We shall defend and respond."
In another tweet, he urged the country to remain calm: "Your security forces shall not allow hostile powers to succeed. We stand for our nation."
He later announced on Twitter
that the Pakistan-Afghanistan border was "closed with immediate effects till further orders due to security reasons."
The attack comes days after a bomb exploded during a protest
in Lahore, Pakistan, on Monday, killing at least 14 people and injuring 59 more, according to government spokesman Malik Ahmad Khan.
Jamat-ul-Ahrar, a splinter group of Pakistan's Tehreek-i Taliban (TTP) -- also known as the Pakistani Taliban -- claimed responsibility for that attack in a statement emailed to CNN.