Stephens werd op elfjarige leeftijd opgenomen in de jeugdopleiding van Plymouth Argyle. In september 2010 debuteerde hij voor de hoofdmacht daarvan, tegen Sheffield Wednesday. Na vijf wedstrijden in het shirt van Plymouth Argyle tekende Stephens in april 2011 een vijfjarig contract bij Southampton. Op 7 januari 2012 debuteerde hij voor The Saints in een FA Cup-wedstrijd tegen Coventry City. In 2012 werd hij definitief overgeheveld naar het eerste elftal, nadat hij eerst een jaar deel uitmaakte van het jeugdteam. Southampton verhuurde Stephens op 13 maart 2014 voor twee maanden aan Swindon Town, op dat moment actief in de League One. Deze huur werd in september met vijf maanden verlengd. Stephens maakte in het seizoen 2016/17 zijn competitiedebuut in het eerste elftal van Southampton. Daarvoor speelde hij dat jaar zeventien wedstrijden in de Premier League. Hij verlengde in juli 2017 zijn contract bij de club tot medio 2022.[1]