Grant naceu en Nairn, nas Terras Altas escocesas, onde o seu pai era o ministro da parroquia, e educado na Academia Nairn, Aberdeen Grammar School e Marischal College, Aberdeen. En 1846 uníuse ao exército indio. Viu o servizo activo na guerra Sikh
(1848-49), serviu durante o motín indio de 1857, e foi ferido nas operacións para o alivio de Lucknow.