Coates begon zijn carrière in zijn vaderland Uruguay, bij Nacional. Voor die laatste club maakte hij in 2009 zijn debuut in het betaalde voetbal. Na 54 wedstrijden voor Nacional te hebben gespeeld werd hij vastgelegd door de Engelse topclub Liverpool. Hij debuteerde voor Liverpool op 18 september 2011 op White Hart Lane tegen Tottenham Hotspur. Hij verving de geblesseerde Daniel Agger na 26 minuten en zag zijn team met 4–0 verliezen. Drie dagen later startte hij voor het eerst in de basiself in de League Cup tegen Brighton & Hove Albion. Op 21 maart 2012 scoorde hij zijn eerste doelpunt voor Liverpool tegen Queens Park Rangers. Op 20 september 2012 scoorde hij in de Europa League tegen het Zwitserse BSC Young Boys. In april en mei 2014 kwam Coates zesmaal op huurbasis uit voor Nacional, in de Uruguayaanse competitie. Liverpool verhuurde hem gedurende het seizoen 2014/15 vervolgens aan Sunderland.
Coates tekende in juli 2015 een definitief contract tot medio 2019 bij Sunderland, waarmee hij in het voorgaande seizoen als zestiende eindigde in de Premier League. Het nam hem voor een niet bekendgemaakt bedrag over van Liverpool.[1]
Coates maakte eveneens deel uit van de Uruguayaanse selectie die deelnam aan de WK-eindronde 2018 in Rusland. La Celeste behaalde drie zeges op rij in groep A, waarna de ploeg van Tabárez in de achtste finales afrekende met regerend Europees kampioen Portugal (2–1) door twee treffers van aanvaller Edinson Cavani. Zonder diens inbreng (kuitblessure) verloor Uruguay vervolgens in de kwartfinale met 2–0 van de latere wereldkampioen Frankrijk. Coates kwam als basisspeler in slechts een van de vijf WK-duels in actie voor zijn vaderland.