原名中江。沱江北段叫牛鞞水,為北江;南段為枝江,稱南江,此為中江。隋文帝避其楊忠之諱,改為內江。一說因取內水(即沱江)為名,蓋市縣位沱江西岸,江至此,曲流成弧,有如半島。城居其內故名。
西魏、北周、隋先后在境內置資州、普州、簡州,歷代屢有廢置。1935年置四川省第二行政督察區。1949年前,今內江市所轄的資中縣、原內江縣(今東興區)、市中區、威遠縣屬四川省第二行政督察區,隆昌縣屬四川省第七行政督察區。
1949年底設立資中專區,轄內江、資中、資陽、簡陽、榮縣、仁壽、井研、威遠八縣。1950年2月劃出井研縣,改資中專區為內江專區,屬川南行署區;內江專署駐內江縣,轄內江、威遠(駐嚴陵鎮)、榮縣、仁壽、簡陽(駐簡城鎮)、資陽、資中等7縣。
1951年9月,由內江縣城區及近郊析置內江市,屬內江專署領導,專署駐內江市。轄1市、7縣。1952年內江專區屬四川省領導。1953年內江市改為省轄市,委托內江專署代管。1958年將仁壽縣劃歸樂山專區;原遂寧專區所屬安岳、樂至2縣劃入內江專區,轄1市、8縣。
1970年(一說1968年)內江專區改稱內江地區,地區駐內江市。轄內江市及內江(駐內江市)、樂至、安岳、威遠(駐嚴陵鎮)、榮縣、資中、資陽、簡陽(駐簡城鎮)等8縣。1979年(一說1978年4月)將榮縣劃歸自貢市領導;原屬宜賓地區的隆昌縣劃入內江地區。轄1市、8縣。
1985年2月,撤銷內江地區和內江市,設立地級內江市和市中區。1989年,撤銷內江縣,設立內江市東興區。1998年2月26日,國務院(國函[1998]15號)批復同意調整內江市行政區劃,設立資陽地區,將內江市的安岳、樂至2個縣和代管的資陽、簡陽2個市(縣級)劃歸資陽地區管轄。地區行政公署駐資陽市雁江鎮。
2000年第五次人口普查,內江市常住總人口4160305人。其中:市中區544660人、東興區847271人、威遠縣744778人、資中縣1278563人、隆昌縣745033人。
2004年,全市轄9個街道、87個鎮、24個鄉。
2010年第六次人口普查,內江市常住總人口3702847人,其中:市中區501285人,東興區749810人,威遠縣626482人,資中縣1192060人,隆昌縣633210人。