John was a son of Sir Nicholas de Graham of Dalkeith and Abercorn and Mary of Strathearn, Orkney and Caithness. His mother Mary was the daughter of Malise Earl of Strathearn and Margery Muschamp of Wooler, Northumberland. As a result of his grandmother’s parentage John de Graham held lands in Northumberland and prior to 1314 had borne allegiance to the English King Edward II despite also having Scottish ancestry.
On 12 June 1314 he transferred his allegiance and went over to the Scottish side. Edward II denounced him an enemy and rebel, and granted his Scottish fiefs to Hugh le Despenser. He fought at the Battle of Bannockburn against the English twelve days later. He survived the battle but after Bannockburn any claims he may have entertained to his Northumberland estates vanished, and his connections with the Earls of Strathearn remained close and strong. He remained a fervent supporter of the Scots cause and signed The Declaration of Arbroath in 1320.
John de Graham married Isabella (surname unknown) and the couple had five children, four daughters and a son also named John. John de Graham died on 25 April 1337.