Richards debuteerde in oktober 2005 op zeventienjarige leeftijd op het hoogste niveau van Engeland, in het shirt van Manchester City, tijdens een wedstrijd tegen Arsenal. Daar doorliep hij ook de laatste jaren van de jeugdopleiding, nadat hij overkwam uit die van Oldham Athletic. In september 2014 werd Richards door Manchester City voor een jaar verhuurd aan Fiorentina, waarvoor hij tien wedstrijden speelde. Nadat zijn contract bij The Citizens was afgelopen, tekende hij een vierjarig contract bij Aston Villa. Hiervoor speelde hij op 15 oktober 2016 zijn laatste wedstrijd. Hij kreeg daarna last van aanhoudende knieproblemen. Richards besloot in juli 2019 op 31-jarige leeftijd om te stoppen met voetballen.
Na 28 wedstrijden op het hoogste niveau van Engeland te hebben gevoetbald, werd Richards door toenmalig bondscoach Steve McClaren voor het eerst opgeroepen voor het Engels voetbalelftal. Op 15 november 2006 debuteerde hij in het nationale elftal, in een oefeninterland tegen Nederland (1-1).