Willem (roepnaam "Guillot") werd geboren in Den Haag als zoon van de latere koning Willem I en van Wilhelmina van Pruisen. Hij kreeg een jongere broer: Frederik (1797-1881), en twee jongere zusjes: Paulina (1800-1806) en Marianne (1810-1883). Na de vlucht in 1795 van zijn grootvader stadhouder Willem V en de uitroeping van de Bataafse Republiek trokken zijn ouders met hun driejarige zoon eerst naar Engeland en daarna naar Duitsland.
Zijn jeugd bracht Willem door aan het hof van de koning van Pruisen waar hij een militaire opleiding kreeg en diende in het Pruisische leger. In Spanje diende hij onder Wellington in het Engelse leger. In 1813 keerde hij met zijn vader terug naar Nederland. In 1815 werd hij troonopvolger. Hij nam als Engels generaal deel aan de Slag bij Waterloo, waaruit hij gewond aan zijn schouder, en in de ogen van sommigen zelfs als de "held van Quatre-Bras en Waterloo", terugkwam.