Panic broke out after the crowd began to press towards the front of the stage at rapper Travis Scott’s Astroworld Festival, emergency officials said.
Eleven people were taken to hospitals in cardiac arrest and eight died. Some casualties are aged as young as 10.
Some 50,000 people attended the outdoor event, which has been cancelled.
Lina Hidalgo, the county judge of Harris County, described what had happened as an “extremely tragic night”.
“Our hearts are broken,” she said. “People go to these events looking for a good time, a chance to unwind, to make memories – it’s not the kind of event you go to where you expect to find out about fatalities.”
Astroworld said in a statement that their hearts were with the “festival family… especially those we lost and their loved ones”, and they thanked local emergency services for their response.
The incident began around 21:15 on Friday (02:15 GMT Saturday), Houston Fire Chief Samuel Peña said.
“The crowd began to compress toward the front of the stage, and people began to panic,” he told reporters.
As the crush began causing injuries to people, the panic grew, the official added.
According to the Houston Chronicle, Travis Scott, who founded the festival, stopped multiple times during his 75-minute performance when he spotted fans in distress near the front of the stage.
The rapper asked security to make sure they were okay and help them out of the crowd. Emergency vehicles, lights and alarms flashing, cut through the crowds several times, the paper says.
Amateur video from the concert appears to show fans jumping on an emergency vehicle in the crowd as the performance continues on stage.
Organisers halted the event when it was apparent that many people had been hurt, but the sheer scale of the casualties quickly overwhelmed the existing medical facilities, the fire chief added.
Fans pressed up against each other near the front of the main stage, eyewitnesses told the Chronicle. In some places, people were so crammed together that they started hyperventilating or struggling to leave.
“We were hanging on to each other to avoid getting separated,” said a male concert-goer. “If you let go, you could easily drift apart.”
A female concert-goer told the paper she had never been to a “music festival with so many angry people”.
Astroworld is an annual event held at NRG Park since 2018, though it was put on pause last year because of the Covid-19 pandemic.
Travis Scott, 29, made his big breakthrough in 2013 and has since had eight nominations for Grammy Awards. He has a child with celebrity socialite Kylie Jenner.
Other acts scheduled at the festival over the weekend included rappers Chief Keef and 21 Savage, and Australian rock act Tame Impala