La localidad portuguesa es capital del municipio del mismo nombre, el cual cuenta con una superficie de 57,53 km², y una población total de 18 825 habitantes (2021).
Su término municipal está dividido a su vez en tres freguesias.
Se trata de uno de los pocos municipios de Portugal territorialmente discontinuos, ya que se divide en una parte occidental, la freguesia de Vila Nova de Cacela, y una parte oriental, donde están la capital del municipio homónimo (Villarreal) y Monte Gordo.
Datos según el nomenclátor publicado por el INE portugués.
El puerto dispone de un servicio de transbordador a la cercana localidad española de Ayamonte, con una frecuencia horaria, de manera que cada media hora zarpa un barco desde Villarreal en dirección a Ayamonte y en dirección contraria, desde Ayamonte en dirección a Vilarreal.