San Benito is part of the Brownsville–Harlingen Metropolitan Statistical Area.
As of the census of 2000, there were 23,444 people, 7,065 households, and 5,715 families residing in the city. The population density was 2,130.2 people per square mile (822.1/km²). There were 9,120 housing units at an average density of 828.7/sq mi (319.8/km²). The racial makeup of the city was 76.16% White, 0.32% African American, 0.41% Native American, 0.25% Asian, 20.48% from other races, and 2.38% from two or more races. Hispanic or Latino of any race were 86.93% of the population.
There were 7,065 households out of which 41.4% had children under the age of 18 living with them, 56.6% were married couples living together, 19.5% had a female householder with no husband present, and 19.1% were non-families. 16.8% of all households were made up of individuals and 10.7% had someone living alone who was 65 years of age or older. The average household size was 3.30 and the average family size was 3.72.
In the city the population was spread out with 33.3% under the age of 18, 10.5% from 18 to 24, 24.8% from 25 to 44, 17.8% from 45 to 64, and 13.6% who were 65 years of age or older. The median age was 30 years. For every 100 females there were 90.2 males. For every 100 females age 18 and over, there were 84.1 males.
The median income for a household in the city was $24,027, and the median income for a family was $26,415. Males had a median income of $22,097 versus $18,512 for females. The per capita income for the city was $10,317. About 28.7% of families and 32.7% of the population were below the poverty line, including 42.1% of those under age 18 and 22.8% of those age 65 or over.