En 2004, Sullivan est sélectionné dans la délégation australienne pour participer aux Jeux olympiques d'été de 2004 organisés à Athènes. Il fait à cette occasion sa première apparition dans l'équipe nationale senior. Aligné lors des séries au sein du relais 4 × 100 mètres nage libre, il nage également la finale lors de laquelle l'Australie prend la sixième place. En 2005, écarté des bassins pour une blessure à la hanche, il manque les Mondiaux de Montréal. Pour son retour à la compétition en 2006, il remporte la médaille d'or sur le relais 4 × 100 m 4 nages lors des Jeux du Commonwealth se tenant à Melbourne. L'année suivante, Eamon Sullivan remporte sa première médaille individuelle dans un grand championnat en prenant la troisième place sur 100 m nage libre lors des Mondiaux 2007 de Melbourne. À l'issue de cette course, il n'échoue qu'à quatre centièmes de deux nageurs sacrés à égalité, Filippo Magnini et Brent Hayden. Dernier relayeur en nage libre au sein du quatuor australien, il enlève la médaille d'or lors de l'épreuve du relais 4 × 100 m 4 nages.
En , le sprinteur australien prend une nouvelle dimension à l'occasion des championnats de Nouvelle-Galles du Sud. Équipé de la même combinaisonSpeedoLZR Racer que le français Alain Bernard, il est vainqueur du 50 m nage libre en 21 s 56 et s'approprie le record du monde de l'épreuve[1] détenu jusqu'alors par le Russe Alexander Popov (21 s 64) avant que ce record ne soit battu en par le Français Alain Bernard. Quelques jours après cette dernière performance, l'Australien se réapproprie le meilleur temps de l'histoire en l'abaissant à deux reprises lors des championnats d'Australie organisés à Sydney, des compétitions servant de cadre aux sélections olympiques nationales. Auteur d'un temps de 21 s 41 lors des demi-finales, il porte le record du monde à 21 s 28 lors de la finale le [2]. Par ailleurs, si Sullivan ne bat pas le nouveau record du 100 m nage libre du Français Bernard, il s'en approche à seulement deux centièmes de seconde (47 s 52 contre 47 s 50) faisant de lui le second performeur de l'histoire. Quelques semaines plus tôt déjà, lors des championnats de Nouvelle-Galles-du-Sud, l'Australien s'était affirmé parmi les nageurs les plus rapides de l'histoire en réalisant un temps de 48 s 11, une performance qui constituait alors la troisième performance de l'histoire derrière le Néerlandais Pieter van den Hoogenband et le Suédois Stefan Nystrand[3].
Lors de son entrée en compétition lors de la finale du relais 4 × 100 m aux Jeux olympiques de Pékin, il lance l'équipe australienne et bat le record du monde du Français Alain Bernard avec 47 s 24. Le , son record du monde est battu par Alain Bernard lors de la première demi-finale du 100 m nage libre des Jeux olympiques 2008 en 47 s 20, mais trois minutes plus tard, lors de la seconde demi-finale, il récupère son record du monde en nageant en 47 s 05. Le lendemain, lors de la finale, il passe en tête au 50 m, talonné par Bernard qui le dépasse dans les 25 derniers mètres. Sullivan finit deuxième devant Jason Lezak et César Cielo, troisièmes ex-æquo. Quelques jours plus tard, sur le 50 nage libre, il ne prend que la sixième place d'une course dominée par le Brésilien Cielo.
Le dimanche , il tombe de haut avec le relais australien composé également de James Magnussen, Matt Targett et James Roberts lorsqu’ils échouent à la 4e place de la finale olympique du 4 × 100 mètres nage libre (3 min 11 s 63) alors que tout le monde les donnait logiquement favoris au vu des chronos 2012 des relayeurs et de leur meilleur temps en série (3 min 12 s 29 et 47 s 35). Sullivan réalise le meilleur temps de son relais finaliste en 47 s 68.
En 2014, Sullivan annonce sa retraite sportive, étant blessé à l'épaule et ne pouvant plus supporter les charges de travail à l'entraînement[4].