Prodotto delle giovanili dell'Arsenal, nel 2006 i Gunners lo cedono in prestito al Falkirk, nella SPL: Stokes realizza 14 reti in 16 incontri di campionato, alla media di 0,88 gol a partita. Le prestazioni dell'irlandese attirano le attenzioni del Sunderland, che ne rileva il cartellino dai londinesi in cambio di una cifra di circa € 3 milioni. Le prestazioni di Stokes prima in Championship poi in Premier sono deludenti, l'attaccante realizza 5 reti in 38 partite tra campionati e coppe: il suo primo gol in Premier è datato primo dicembre 2007, realizzato al 90' contro il Derby County (1-0) dopo esser entrato al 78' al posto di Carlos Edwards, rete decisiva per le sorti del Sunderland nel torneo inglese, il club infatti a fine stagione si salverà per soli tre punti. Stokes è quindi ceduto in prestito nella seconda divisione inglese, prima a Sheffield poi a Londra. L'irlandese però non riesce a ingranare e il 22 agosto 2009 decide di tornare in Scozia: l'Hibernian lo acquista per € 575.000. Alla sua prima stagione sigla 21 gol in 37 giornate di campionato, firmando doppiette contro St. Johnstone (3-0), Motherwell (2-0), Aberdeen (0-2), Hamilton Academical (5-1) e nel rocambolesco 6-6 contro il Motherwell, sfida durante la quale mette a segno le reti del parziale 2-5 e 2-6. Nella stagione seguente passa al Celtic per € 1,5 milioni: segna più di 60 gol nelle sei stagioni seguenti, andando a segno con una tripletta contro Aberdeen (9-0, due su rigore), Peterhead (1-3), St. Johnstone (6-0) e Inverness (3-0). Nella sessione invernale del calciomercato 2016 fa ritorno al suo ex club Hibernian