He helped on the family farm in Kent County and was also part owner of a large sawmill at Chatham.
[1] In 1857, he was elected to the Legislative Assembly of the Province of Canada for Kent and he served until Confederation.
However, the opposition had accused him of taking advantage of his position to award contracts to his friends.
Although he was cleared of any wrongdoing, he retired from politics in 1875 and was appointed sheriff in Wentworth County.
The township of McKellar in Parry Sound District was named in his honour.