Cohen begon op zesjarige leeftijd met voetballen bij West Ham United. Hij debuteerde als zestienjarige voor The Hammers op 13 december 2003 tegen Sunderland. Daarmee werd hij de jongste debutant voor de club in 80 jaar. Tijdens het seizoen 2005/06 werd hij uitgeleend aan Yeovil Town.
In juli 2006 trok Cohen transfervrij naar Yeovil Town. Op 6 juli 2007 tekende hij een vierjarig contract voor Nottingham Forest. Hij vierde zijn debuut tegen Port Vale. In zijn eerste seizoen speelde hij 41 wedstrijden in de League One. In 2008 steeg de club naar de Championship. Hij scoorde zijn eerste doelpunt tegen Huddersfield Town. Inmiddels is hij aanvoerder geworden van Nottingham Forest en speelde hij meer dan 200 competitiewedstrijden voor de club.