1 Compétitions officielles nationales et internationales senior, incluant le parcours amateur et en équipe réserve. 2 Matchs officiels. Dernière mise à jour : 3 février 2021
En , il est prêté à Swansea City jusqu'à la fin de la saison 2007-2008, en vue d'un transfert définitif. Son départ de Stockport signifie qu'il manque les derniers matchs de la saison, et la promotion en League One grâce à une victoire en play-offs au stade de Wembley.
Le suivant, il s'engage définitivement avec le club gallois. Williams marque son premier but contre Derby County, le . Titulaire indiscutable au fil des saisons, il ne rate que très peu de matchs et hérite du brassard de capitaine en 2013. Après 349 matchs et 14 buts sous le maillot des Swans en plus de huit ans, il quitte le club lors de l'été 2016.
Everton FC
Le , Williams s'engage pour trois saisons avec l'Everton FC[1]. Il fait ses débuts sous le maillot des Toffees dix jours plus tard en entrant en fin de rencontre face à West Bromwich Albion (victoire 1-2). Le , il inscrit son premier but avec Everton lors du match comptant pour la 16e journée de Premier League face à Arsenal (victoire 2-1).
Prêt à Stoke City
Le , Williams est prêté pour une saison à Stoke City[2]. Il inscrit un but en trente-sept matchs toutes compétitions confondues sous le maillot des Potters.
Le contrat d'Ashley Williams n'étant prolongé à Everton, il quitte le club après avoir inscrit trois buts en soixante-treize matchs en l'espace de trois saisons.
Bristol City et fin de carrière
Libre de tout contrat, il s'engage pour cinq mois à Bristol City le [3]. Son contrat est finalement prolongé jusqu'à la fin de la saison 2019-2020.
Sans club depuis l'été 2020, il annonce qu'il met un terme à sa carrière sportive en .
Équipe nationale
Le , Ashley Williams honore sa première sélection avec la sélection galloise lors d'un match amical face au Luxembourg (2-0 pour les Gallois). Le , il inscrit son premier but en sélection à l'occasion d'un nouveau match amical face au Luxembourg (victoire 4-1). En , il est nommé capitaine du pays de Galles par le sélectionneur Chris Coleman.
Il fait partie des vingt-trois joueurs sélectionnés par Coleman pour disputer l'Euro 2016. Le , il inscrit le but égalisateur des Gallois face à la Belgique en quarts de finale de cette compétition (victoire 3-1). Les Gallois atteignent alors le dernier carré du championnat d'Europe pour la première fois de leur histoire mais sont éliminés par le Portugal en demi-finale (2-0), futur vainqueur du tournoi.