The ability of unmanned surface vehicles (USVs) to maintain a fixed orientation and position for an extended period of time is essential for a variety of applications such as acoustic and optical localization and automated launch and recovery of other systems. The need for station-keeping capabilities on USVs requires collaboration between the controller and the propulsion system, both designed to allow the vehicle to perform this challenging maneuver. Small external perturbations, such as wind, waves and current, can have tremendous effects on low weight USVs. These can negatively affect the USV ability to hold its state, resulting in large errors or oscillations. A robust controller capable to account for unmodeled dynamics, which lead to significant deviations between simulated and experimental results, is therefore essential. After an appropriate propulsion system had been designed and installed on a USV, several stationkeeping controllers were implemented and tested. Experimental testing of these controllers in environments of uncertain wind, current and wave disturbances show that the vehicle is best controlled by a nonlinear, backstepping, Multi-Input Multioutput (MIMO) PD controller. A Lagrangian multiplier method was used for control allocation. It is shown that a USV equipped with azimuthing electric propellers is capable to reach and maintain a specific configuration of heading and position for a period of ten or more minutes.