Tossa de Mar liegt in einer Bucht zwischen steil zum Mittelmeer abfallenden Felsenklippen, ca. 90 km nordöstlich von Barcelona, südwestlich der französischen Grenze.