Wilson genoot zijn jeugdopleiding bij Manchester United. In 2004 vertrok hij naar Portsmouth. Die club leende hem meermaals uit. In maart 2006 werd hij voor het eerst uitgeleend aan Yeovil Town; een jaar later werd hij tweemaal uitgeleend aan Bournemouth en daarna aan Luton Town. Op 31 augustus 2010, de laatste dag van de zomerse transferperiode, tekende hij een contract bij Stoke City. Wilson debuteerde voor The Potters op 13 september 2010 tegen Aston Villa. Hij maakte een goede indruk, maar had moeite met het fysieke spel van Aston Villa-middenvelders Stilijan Petrov en Nigel Reo-Coker. Hij werd kort na rust naar de kant gehaald.[1] Op 24 oktober 2010 maakte hij voor het eerst de 90 minuten vol tegen Manchester United. Op 26 december 2010 maakte hij zijn eerste doelpunt voor Stoke tegen Blackburn Rovers. In oktober 2012 tekende hij een nieuw contract, waardoor hij nog tot medio 2014 vastlag in Stoke-on-Trent; later zou hij opnieuw verlengen. Wilson stond op 14 mei 2011 met Stoke City in de finale van de strijd om de FA Cup. Daarin verloor de ploeg van trainer-coach Tony Pulis met 1–0 van Manchester City door een treffer in de 74ste minuut van Yaya Touré. Sinds 2011 kent Wilson een basisplaats in het elftal van Stoke.
Wilson werd geboren in het Noord-Ierse Aghagallon, maar koos ervoor om uit te komen voor Ierland. Hij speelde tot zijn vijftiende in de Noord-Ierse jeugdelftallen. Bij de elftallen onder 18, 19 en 21 kwam hij uit voor Ierland. In maart 2010 werd hij voor het eerst opgeroepen voor een vriendschappelijke interland tegen Brazilië. Hij debuteerde in het vierlandentoernooi in februari 2011 tegen Wales. In januari 2012 deed de bondscoach van Noord-Ierland, Michael O'Neill, Wilson een laatste aanbod om nog van gedachte te veranderen, maar Wilson weigerde het aanbod. Op 16 oktober 2012 maakte hij zijn eerste interlanddoelpunt in een WK-kwalificatiewedstrijd tegen de Faeröer. In november 2015 plaatste Wilson zich met Ierland voor het Europees kampioenschap voetbal 2016 na een play-off tegen Bosnië en Herzegovina.[2]