Interpretó el papel de Peter en The Love Bug junto a Dean Jones, pero es mejor recordado por el papel de George Banks en la película Mary Poppins.
Se desempeñó como teniente de vuelo en la Royal Air Force durante la Segunda Guerra Mundial.
Interpretó el papel de Emelius Browne en el musical de Disney llamado Bedknobs and Broomsticks.
Se casó con su segunda esposa, Audrey Freeman en 1953 y tiene cuatro hijos.
Estuvo en Mary Poppins junto a Julie Andrews.