Bacalar (espagnol : (listen)) est le siège municipal et la plus grande ville de la municipalité de Bacalar (jusqu’en 2011 une partie de la municipalité d’Othón P. Blanco) dans l’État mexicain de Quintana Roo, à environ 40 kilomètres (25 mi) au nord de Chetumal, à 18° 40′ 37″ N, 88° 23′ 43″ W. Au recensement de 2010, la ville avait une population de 11 084 personnes. À cette époque, elle faisait encore partie d’Othón P. Blanco, et en était la deuxième ville (localité), après Chetumal.
Le nom dérive très probablement des langues mayas : bʼak halal, signifiant « entouré de roseaux », nom de la localité attesté lors de l’arrivée des Espagnols au XVIe siècle.
Bacalar est aussi le nom de la lagune, la lagune Bacalar à l’est de la ville.
Bacalar était une ville de la civilisation maya à l’époque précolombienne. C’est la première ville de la région que les Conquistadores espagnols ont réussi à prendre et à tenir en 1543. En 1545, Gaspar Pacheco y a établi la ville espagnole sous le nom de Salamanca de Bacalar avec l’aide de Juan de la Cámara. La région de la moitié sud de l’actuel Quintana Roo était gouvernée depuis Bacalar, relevant du capitaine général du Yucatán à Mérida.
Après le saccage de la ville par des pirates au XVIIe siècle, la forteresse de San Felipe Bacalar fut achevée en 1729, et peut encore être visitée aujourd’hui.
En 1848, Bacalar avait une population d’environ 5 000 personnes. En 1848, pendant la guerre des castes du Yucatán, les rebelles Chan Santa Cruz Maya ont conquis la ville. Elle ne fut reprise par les Mexicains qu’en 1902.
Bacalar a été nommé « Pueblo Mágico » en 2006.