He was born in Glasgow the son of Thomas Thomson, chemistry professor at Glasgow University. He qualified as an M.D. at Glasgow University in 1839, as was appointed Assistant Surgeon in the Bengal Army 21 December 1839.
He served during the campaign in Afghanistan 1839-1842 being present at the capture of Ghuzni in 1839 and was taken prisoner at Ghuzni in March 1842 but was released 21 September 1842. He served in the Sutlej campaign, 1845-46, being present at Firuzshahr, and in the second Sikh war, 1848-49. He was promoted Surgeon on 1 December 1853 and Surgeon Major on 21 December 1859.