La commune est située dans le canton de Vaud, district de Broye-Vully sur la rive sud-ouest du lac de Morat face au Vully, à égale distance de Morat et d’Avenches.
Le village est situé à une altitude de 447 mètres, il a une surface de 302 ha.
Le point le plus bas «Le Vuat» est à 433 mètres, alors que le sommet du Bois de Rosset culmine à 485 mètres.
***
Son territoire est limité au nord par le lac; à l’ouest par le Chandon, rivière qui marque la frontière avec les communes d’Avenches et Villarepos; à l’est par les communes fribourgeoises de Greng et Courgevaux et au sud par l’enclave bernoise de Clavaleyres.
Dernière localité vaudoise sur l’axe Lausanne-Berne son territoire est traversé par l’autoroute A1.