Łą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.