天水因“天河注水”的傳說而得名。夏、商時期屬雍州。周孝王十二年(公元前九世紀)贏非子在秦池(今張家川縣城南一帶)為王室養馬有功被封于秦,號贏秦。秦即后世的秦亭,是今天水市轄區見于史籍的最早地名。秦武公十年(前688年),秦滅邽戎、冀戎,置邽(今天水市城區)、冀(今甘谷縣東)二縣,這是中國歷史上設置最早的兩個縣級建置。秦昭王二十八年(279年),設隴西郡。
西漢武帝元鼎三年(前114年),從隴西、北地二郡析置天水郡。從此有“天水”的名稱。三國魏黃初元年(220年)一度設秦州,因秦邑而得名。晉泰始五年(269年)正式設秦州,今轄區大部分由秦州天水郡轄。隋唐時秦州地域和今轄區大體相當。元代,秦州轄成紀、秦安、清水3縣。明代,秦州轄秦安、清水、禮縣3縣。清雍正七年(1729年),秦州升為直隸州,直隸甘肅省,轄秦安、清水、兩當、徽縣、禮縣5縣。
民國二年(1913年)2月,改稱隴南道。撤秦州設天水縣。民國三年1月,寧遠縣改稱武山縣。6月,隴南道改稱渭川道,轄14縣。民國十六年(1927年)7月,渭川道改稱渭川行政區。不久,撤銷行政區,實行純粹的省縣二級制。民國十八年(1929年),伏羌縣改名甘谷縣。民國二十三年(1934年),甘肅省政府設立天水行政督察區。次年,改稱甘肅省第四行政督察區,轄10縣。
1949年8月3日,天水縣解放。8月15日,天水分區行政督察區成立,轄天水、甘谷、武山、徽縣、兩當、通渭、秦安、清水8縣。同年12月,天水分區改稱天水專區。1950年2月,析天水縣置天水市,以城區為天水市的行政區域。5月25日,平涼專區析出莊浪縣劃歸天水專區;撤銷岷縣專區,所屬隴西、漳縣劃歸天水專區。天水專區轄天水市及天水、秦安、徽縣、兩當、武山、漳縣、甘谷、清水、莊浪、隴西、通渭11縣,81個區公所,614個鄉。1952年,天水專區轄91個區公所,635個鄉。
1953年7月6日,將清水、秦安、莊浪、隴縣38鄉合并成立張家川回族自治區(1955年10月改稱縣),屬天水專區。同年底,天水專區轄1市12縣887個鄉。1956年1月,天水專區的隴西縣、通渭縣劃歸定西專區,武都專區的禮縣、西和、成縣劃歸天水專區,天水專區的莊浪縣劃歸平涼專區。同年底,天水專區轄天水市及天水、秦安、禮縣、西和、成縣、徽縣、兩當、武山、漳縣、甘谷、清水、張家川12縣,67個區,531個鄉,9個鎮,9個街道辦事處。
1958年4月4日,撤銷兩當并入徽縣。4月8日,撤銷武都專區,所轄宕昌、文縣、武都、康縣、岷縣5縣劃歸天水專區。9月5日,撤銷西和縣、禮縣,合并成立西禮縣;撤銷徽縣、成縣,合并成立徽成縣。12月16日,天水專區的岷縣劃歸定西專區。12月20日,撤銷天水縣劃歸天水市;甘谷、漳縣、武山合并成立武山縣;撤銷張家川縣和清水縣,合并成立清水回族自治縣。同年實現人民公社化,實行政社合一體制。天水專區轄天水市及秦安、清水、武山、西禮、徽成、武都、文縣8縣,129個公社,4個街道辦事處。
1961年11月5日,恢復武都專區。原劃歸天水專區的武都、宕昌、康縣、成縣、文縣仍劃歸武都專區。12月15日,恢復天水、甘谷、漳縣、兩當、西和、禮縣、清水縣和張家川回族自治縣。漳縣劃歸臨洮專區。至年底,天水專區轄天水市及天水、西和、禮縣、徽縣、兩當、武山、甘谷、秦安、清水、張家川等10個縣,60個區,440個公社,4個街道辦事處。
1963年10月23日,撤銷臨洮專區,將其所屬漳縣劃歸天水專區。天水專區轄1市11縣,482個公社,3個鎮,4個街道辦事處。1969年10月1日,天水專區改稱天水地區。轄天水市、天水縣、甘谷縣、武山縣、清水縣、張川縣、秦安縣、徽縣、兩當縣、禮縣、漳縣等1市11縣,223個公社,5個鎮,4個街道辦事處。1980年,天水地區轄1市11縣,232個公社,5個鎮,8個街道辦事處。1983年,政社分設,改社為鄉。
1985年7月8日,國務院批準,撤銷天水地區,天水市升為地級市。撤銷天水縣、將其行政區域并入天水市。天水市設立秦城、北道兩區。以天水縣西南17鄉及原天水市(縣級)轄區設秦城區,以天水縣東南、西北其余22鄉和北道鎮設北道區。天水市人民政府駐秦城區。將原天水地區的徽縣、兩當、西和、禮縣劃歸新成立的隴南地區;漳縣劃歸定西地區。天水市轄兩區五縣;即秦城、北道兩區,秦安、清水、張家川、甘谷、武山等5縣,138個鄉,11個鎮,11個街道辦事處。
2000年第五次人口普查,天水市常住總人口3219323人,其中,秦城區604070人、北道區542916人、清水縣279207人、秦安縣545273人、甘谷縣553377人、武山縣399911人、張家川回族自治縣294569人。2002年末,天水市轄秦城、北道2區,秦安、清水、甘谷、武山、張家川回族自治縣5縣,40個鎮、109個鄉、11個街道。2003年,全市共撤并鄉鎮36個、街道1個;調整后,天水市轄113個鄉鎮(46個鎮,67個鄉)、10個街道。
2004年9月30日,民政部批準(民函[2004]244號)同意天水市秦城區更名為秦州區、北道區更名為麥積區;(甘肅省人民政府2004年11月2日批準 甘政函[2004]99號)。2005年1月1日,秦城區以古秦州取名,正式改稱秦州區;北道區以國家重點風景名勝區麥積山風景區取名,正式改稱麥積區。
2010年第六次人口普查,天水市常住總人口3262548人,其中,秦州區643906人,麥積區553268人,清水縣266908人,秦安縣515423人,甘谷縣559712人,武山縣437268人,張家川縣286063人。
2021年第七次人口普查,天水市常住總人口為2984659人,與2010年第六次全國人口普查時的3262548人相比,減少了277889人,年平均增長-0.89%。