Łącznie w ekipie Portsmouth FC wystąpił 174 razy oraz zdobył 16 bramek.
W drużynie Boro swój debiut zaliczył 18 sierpnia, kiedy to zagrał w wygranym 3:1 spotkaniu z Boltonem Wanderers. W swoim pierwszym sezonie w Middlesbrough O’Neil zagrał jeszcze w 25 meczach, jednak nie zdobył żadnej bramki. Pierwsze trafienie zaliczył 29 października następnego roku w pojedynku z Manchesterem City.
W styczniu 2011 roku, O’Neil przeszedł do West Hamu United na zasadzie transferu definitywnego. Anglik podpisał 2,5 letni kontrakt. Suma transferu nie została ujawniona.
7 sierpnia przeszedł na zasadzie wolnego transferu do Queens Park Rangers.
5 sierpnia 2014 roku przeniósł się do Norwich City.
Kariera reprezentacyjna O’Neil w latach 2003–2004 zaliczył dziewięć występów w reprezentacji Anglii do lat 21.