Bennett debuteerde op de laatste speeldag van het seizoen 2008-2009 in het betaald voetbal in het shirt van Middlesbrough, waarmee hij het opnam tegen West Ham United. In augustus 2009 tekende hij er een nieuw driejarig contract, dat hij in januari 2011 verlengde tot medio 2015. In totaal speelde hij 85 competitiewedstrijden voor Boro.
Bennett tekende op 29 augustus 2012 vervolgens een vierjarig contract bij Aston Villa, dat circa €3.900.000,- op tafel legde voor de linksachter. Hij debuteerde op 22 september 2012 voor The Villans, tegen Southampton. Hij viel die wedstrijd in voor Eric Lichaj. Op 20 augustus 2014 verhuurde Aston Villa Bennett voor een jaar aan Brighton & Hove Albion. Daarvoor speelde hij dat seizoen vrijwel alle wedstrijden in het Championship.
Aston Villa verhuurde Bennett in september 2015 voor een half jaar aan Bournemouth, dat in het voorgaande seizoen promoveerde naar de Premier League. In januari 2016 werd hij opnieuw voor een half jaar verhuurd, ditmaal aan Sheffield Wednesday.