唐垂拱二年(686)属梵德乡。
宋咸平四年(1001)属孝德乡。
元、明、清时沿袭。
1929年属东阳第二区。
1932年设立歌山乡。
1935年辖九、十、十一都全部和八都、十二都的部分村庄。
1950年5月,辖李宅区的红旗乡、胜利乡、凤山乡、大甽乡、亲贤乡以及林浦区的歌山乡、林头乡等七乡。
1956年歌山乡、林头乡合并复置歌山乡;胜利乡、凤山乡合并到李宅乡;红旗乡、大甽乡、亲贤乡合并成红旗乡。
1958年9月,辖真理公社红旗、凤山、和平管理区以及巍山公社歌山管理区。
1983年,歌山公社、凤山公社、红旗公社改为乡建制。
1992年,凤山乡、红旗乡合并建北江镇。
1994年3月撤乡建歌山镇。
2003年10月8日,撤北江镇并入歌山镇。
2005年6月6日金鑫村划归巍山镇代管。