RobertoI murió en 1329, dejando en el trono a su hijo de 5 años como DavidII. Durante su minoría de edad, el país fue dirigido por una serie de gobernadores, dos de los cuales murieron como resultado de una nueva invasión de las fuerzas inglesas en 1332. Estas tenían como pretexto la restauración de Eduardo de Balliol, hijo de Juan de Balliol, al trono escocés, empezando así la Segunda Guerra de Independencia. A pesar de las victorias en Dupplin Moor (1332) y Halidon Hill (1333) en contra de una fuerte resistencia escocesa dirigida por Sir Andrew Murray, los sucesivos intentos para asegurar a Balliol el trono fallaron. Eduardo III de Inglaterra perdió el interés en el destino de su protegido después del estallido de la Guerra de los Cien Años con Francia. En 1341, David fue capaz de regresar de un exilio temporal en Francia. En 1346, bajo los términos de la Auld Alliance, invadió Inglaterra por intereses de Francia, pero fue derrotado y tomado prisionero en la Batalla de Neville's Cross el 17 de octubre de 1346 y permanecería en Inglaterra como prisionero durante 11 años. Su primo Roberto Stewart gobernó como Guardián en su ausencia. Balliol finalmente renunció a su petición al trono de Eduardo en 1356, antes de retirarse a Yorkshire, donde murió en 1364.