Am Ende der Saison 2002/03 schaffte er mit seiner Mannschaft den Aufstieg in die Premier League. Um Spielpraxis zu sammeln wurde er zu Beginn der nächsten Saison an den FC Walsall verliehen. Aufgrund seiner guten Leistungen und der Verletzungsprobleme bei Portsmouth wurde er jedoch bereits im November 2003 zurückgeholt. Beim 6:1-Sieg über Leeds United absolvierte O’Neil sein Premier League Debüt und schoss dabei zwei Tore. Nur wenige Tage später musste er nach Dubai zur Junioren-Fußballweltmeisterschaft 2003 abreisen. Zurück in Portsmouth hatten sich alle Verletzungssorgen in der Mannschaft aufgelöst und O’Neil konnte bis zum Saisonende keinen Stammplatz mehr erreichen. Zu Beginn der Saison 2004/05 wurde er deshalb an Cardiff City ausgeliehen. Abermals wurde er bereits nach kurzer Zeit zurückgeholt, da Portsmouth erneut viele verletzte Stammspieler zu beklagen hatte. Nachdem Redknapp entlassen wurde, entwickelte sich O’Neil unter dem neuen Trainer Velimir Zajec und später unter Alain Perrin zum Stammspieler im Mittelfeld von Portsmouth. Nur wenige Monate später wurde Perrin jedoch wieder entlassen und Harry Redknapp erneut als Cheftrainer verpflichtet. Diesem waren die guten Leistungen von O’Neil nicht entgangen und deshalb hielt er diesmal an dem Mittelfeldspieler fest und ließ ihn später sogar auf seiner Lieblingsposition im zentralen Mittelfeld spielen. Beim Heimspiel gegen den FC Everton im Januar 2006 lief er erstmals als Mannschaftskapitän auf und wurde am Saisonende zum Spieler des Jahres von Portsmouth gewählt. In der Folgesaison erreichte er mit seiner Mannschaft den neunten Tabellenplatz.