David Wilson découvre le rugby à XV dans sa ville natale de South Shields où il joue en junior avec le "Westoe club". Dans le même temps, il fait ses études à la "Harton School". Il est sélectionné en équipe nationale des moins de 19 et moins de 21 ans, puis en équipe d'Angleterre A. Il rejoint l'équipe professionnelle des Newcastle Falcons avec qui il fait ses débuts le contre Bath. Mais une blessure au ligament du genou l'éloigne des terrains pendant presque un an et il ne fait son retour qu'en fin de saison 2004-2005. En 2009, il signe un contrat de deux ans avec le club de Bath. Sa venue à Bath coïncide avec le départ forcé du pilier Matt Stevens qui a été exclu pour deux années après avoir été contrôlé positif à la cocaïne. Cette même année, il obtient sa première cape en équipe première le à l'occasion d'un match contre l'Argentine lors de la tournée d'été. Il participe ensuite à la tournée automnale et est retenu dans le groupe qui joue le Tournoi des Six Nations 2010.