La ville se trouve à l'extrême nord du golfe de Botnie, sur la rive droite du fleuveTorne dont le cours inférieur marque la frontière entre la Finlande et la Suède. Son territoire jouxte donc, à l'est, ladite frontière. Cependant le centre de la ville finlandaise limitrophe de Tornio n'est pas séparé de Haparanda par le cours principal du Torne, mais par une sorte de baie formée par celui-ci sur la rive droite, nommée (en finnois) Kaupunginlahti, où passe à cet endroit la frontière.