自宋至清,运河以南属仁和县,民国后属杭县,运河以北属德清县。
1946年,调整乡镇建制,杭县设临平、塘栖等7镇。
1950年5月,原属德清县城关区双溪乡三村划归杭县。
塘栖一直为县直属镇。
1958年杭县建制撤销,杭州市塘栖区政府置此,后称杭州市塘栖人民公社,曾属半山联社、钱塘联社。
1959年下半年塘栖人民公社塘栖管理区撤销,恢复塘栖镇。
1961年4月属余杭县。
1985年12月丁河乡并入塘栖镇,塘南乡西界河行政村、姚家坝行政村的3个自然村(三分、施家湾、六宝)划至塘栖镇。
1992年5月撤超山、宏磻、塘南3个乡并入塘栖镇。
2005年2月,镇辖28个行政村、6个社区,属余杭区。
2021年3月杭州市区划调整,属临平区。