他的情妇所生最年长的儿子，大约于1349年时其父母的婚姻合法化（他们先前在1336年已经结婚，但是一些人批评那一个婚礼是不合标准的），约翰因而取得继承资格。1390年4月，罗伯特二世去世。5月，约翰继位，但是他的名字却惹了点小麻烦。苏格兰历史上，约翰·巴里奥曾经在与他的外曾祖父罗伯特·布鲁斯争权时自称“约翰一世”。如果约翰称“约翰二世”，则等于是认可了约翰·巴里奥，动摇罗伯特·布鲁斯一脉的王权。于是约翰继父亲名号，称“罗伯特三世”。1399年，罗伯特三世由于身体不适，任命其长子罗撒西公爵为苏格兰军队