Clubcarrière
Vokes debuteerde op 5 december 2006 voor Bournemouth, tegen Nottingham Forest. Na twee seizoenen werd hij verkocht aan Wolverhampton Wanderers, waar hij een vierjarig contract tekende. Bij Wolverhampton werd hij niet meteen een succes waardoor de club hem uitleende aan Leeds United, Bristol City, Sheffield United, Norwich City, Burnley en Brighton & Hove Albion. Op 31 juli 2012 tekende hij een driejarig contract bij Burnley. In januari 2014 werd zijn contract verlengd tot de zomer van 2017. Uiteindelijk verruilde hij Burnley voor Stoke City in 2019.
Interlandcarrière
Vokes debuteerde op 28 mei 2008 voor Wales in de wedstrijd tegen IJsland. Op 6 september 2008 maakte hij het enige doelpunt in een WK-kwalificatiewedstrijd tegen Azerbeidzjan in het Millennium Stadium in Cardiff. Met Wales nam Vokes deel aan het Europees kampioenschap voetbal 2016 in Frankrijk. Hij scoorde onder meer als invaller in de kwartfinale tegen België (3–1). Wales werd in de halve finale uitgeschakeld door Portugal (0–2).