Willard is located in southeastern Box Elder County and is bordered by the city of Perry to the north and the unincorporated community of South Willard to the south.
According to the United States Census Bureau, the city has a total area of , of which is land and , or 21.16%, is water [REF].