He practiced in Canada for a bit before becoming an assistant surgeon for the Union Army during the American Civil War working in Emory and Henry College Hospital (1862 to 1863) and at the Marine United States General Hospital at New Orleans (1863 to 1865). In 1865, he returned to Canada working as a doctor in Nanaimo, British Columbia. In 1867, he moved to Barkerville where he also invested in mines.
A supporter of confederation, he was elected to the Legislative Council of British Columbia in 1868 and served until 1871.
He was one of three delegates who went to Ottawa to talk about the terms of British Columbia joining Canada. In 1871, he was summoned to the Senate of Canada.
In 1879, he introduced a bill to make July 1 a public holiday to be called Dominion Day (now called Canada Day), which was latter passed. He served until his death.
Carrall Street in Vancouver, British Columbia is named in his honour.
From 1870 to 1871, he was a member of the Executive Council.