Roberto I morì nel 1329, quando l'erede Davide II aveva solo cinque anni. Durante la sua infanzia il paese fu governato da una serie di reggenti, due dei quali morirono durante una nuova invasione inglese nel 1332. Questo fu preso a pretesto da parte inglese per cercare di restaurare sul trono Edoardo Balliol, figlio di John Balliol, il che portò alla seconda guerra di indipendenza scozzese. Nonostante le vittorie di  Dupplin Moor (1332) e Halidon Hill (1333), i tentativi di assicurare il trono a Balliol fallirono davanti alla tenace resistenza scozzese sotto la guida di Sir Andrew Murray, figlio del compagno d'armi di Wallace. Edoardo III, allo scoppio della Guerra dei Cent'anni contro la Francia, si disinteressò della sorte del suo protetto. Nel 1341 Davide poté rientrare dal suo temporaneo esilio in Francia e nel 1346, appoggiandosi alla Auld Alliance, invase l'Inghilterra prendendo le parti della Francia ma fu battuto e catturato nella battaglia di Neville's Cross il 17 ottobre 1346, e rimase prigioniero degli Inglesi per 11 anni. Suo cugino Robert Stewart regnò come guardian in sua assenza. Alla fine Balliol rinunciò alle sue pretese al trono nel 1356, e si ritirò nello Yorkshire dove morì nel 1364.