Andrew Musgrave est né à Poole[1] dans le Dorset, mais sa famille amatrice de ski déménage vers les îles Shetland, puis en Alaska, où il commence le ski alpin. À onze ans, revenu en Écosse au Aberdeenshire, il se redirige vers le ski de fond et s'entraîne de manière sérieuse en compagnie de Andrew Young et Callum Smith[2]. En 2007, il prend part au Festival olympique de la jeunesse européenne à Jaca, sa première compétition internationale, peu avant d'être domicilié en Norvège pour pouvoir continuer à être compétitif. Aux Championnats du monde junior 2009 à Praz de Lys, il signe son meilleur résultat sur le dix kilomètres libre avec le neuvième rang.
Lors des Championnats du monde, son meilleur résultat reste à ce jour une quatrième place au cinquante kilomètres libre de Lahti en 2017, le meilleur résultat du ski de fond britannique de l'histoire en mondial, à seulement 1,5 seconde du podium et de Matti Heikkinen[3].
En janvier 2014, il gagne le sprint des Championnats de Norvège devant Ola-Vigen Hattestad notamment[4], il ne reçoit pas de médaille n'étant pas norvégien. Il dispute ensuite ses deuxièmes jeux olympiques à Sotchi.
Lors du Tour de ski 2014-2015, il réalise le meilleur temps sur la poursuite 25 km libre, signant son premier podium international en carrière. Il obtient son meilleur résultat en course par étapes aux Finales en 2017 à Québec, où grâce à une deuxième place sur le quinze kilomètres libre, il prend la neuvième place finale.
En décembre 2017, il monte sur son premier podium en Coupe du monde en terminant troisième du quinze kilomètres de Toblach. Depuis, il s'installe dans le top 30 au classement général, prenant notamment la vingtième place en 2020-2021, saison durant laquelle il obtient son meilleur résultat en course par étapes avec une sixième place au Ruka Triple (Nordic Opening).
Aux Jeux olympiques d'hiver de 2018, à Pyeongchang, il est notamment septième du skiathlon, le meilleur résultat aux Jeux olympiques d'un fondeur britannique[5]. Il obtient le même résultat dans cette épreuve aux Championnats du monde 2019 à Seefeld, où il collecte deux autres huitièmes places. Deux ans plus tard, lors des Mondiaux à Oberstdorf, il réussit à finir deux fois septième, sur le skiathlon et le cinquante kilomètres.