Antigua Zankle, fundada por los piratas de Cumas, pasó a poder de los samis y, en el siglo V a. C., de los mesenes (desterrados de su patria y dirigidos por el tirano Anaxilau), que le dieron el nombre actual.
En el 289 a. C. fue conquistada por los mamertinos, quienes, en lucha con los cartagineses, pidieron ayuda a los romanos, que tomaron la ciudad y la hicieron aliada.
Dominada desde 468 por los vándalos y, posteriormente, por los ostrogodos, fue reconquistada por Belisari (531) y tomada por los árabes (842) y por los normandos (1061).
En 1282 la ciudad tomó parte en el levantamiento de las Vísperas Sicilianas. Sitiada por Carlos I de Nápoles, fue eficazmente liberada por las fuerzas catalanas de Pedro II de Aragón (septiembre de 1283), llegadas a Sicilia. De Messina partieron las naves de los almogávares hacia el imperio Bizantino, en 1303. La ciudad, junto con Palermo, fue el centro principal de la administración catalana en Sicilia. Tuvo consulados catalanes desde el siglo XIV hasta el XVII. En 1848 se rebeló contra Fernando II de las Dos Sicilias, quien la hizo bombardear; sin embargo, fue la última ciudad siciliana en rendirse a los piamonteses.
La ciudad conserva restos romanos (necrópolis de los siglos II y III) y varios templos cristianos (algunos de los cuales fueron edificados sobre antiguos templos paganos), la catedral, la iglesia del Annunziata dei Catalani (siglo XI, sobre el templo de Posidón), la de Santa María la Cattólica (sobre un Panteón). La mayoría de estos edificios, destruidos por los terremotos de 1783 y 1908 y los bombardeos de 1943, han sido reconstruidos.