A goalkeeper, Daniels began his career in the academy at Manchester United, before moving to the academy at West Bromwich Albion in 2004. Upon completing his scholarship, he signed his first professional contract with the club in July 2006. The departure of second-choice goalkeeper Russell Hoult in January 2007 led to Daniels being temporarily promoted onto the substitutes' bench for the majority of the remaining matches of the 2006–07 season and though he failed to make an appearance, he signed a new two-year contract at the end of the season. Daniels was called into the first team squad on one occasion during the 2007–08 season, but spent much of the following three seasons away on loan and signed a two-year contract extension in July 2009. Daniels was called into the squad for the first time in nearly four years for two League Cup matches early in the 2011–12 season. After returning from loan during the second half of the 2011–12 season, he became regular backup to Márton Fülöp. Daniels backed up Boaz Myhill during the first half of the 2012–13 season, but failed to feature during the second half of the campaign. He signed a new two-year contract in March 2013.
Daniels received his first call up of the 2013–14 season onto the bench for a Premier League match versus Everton and he made his long-awaited Baggies debut as a 77th-minute substitute for the injured Ben Foster and helped the team to a 0–0 draw. He made his first start for the club in the following game, keeping another clean sheet in a 3–0 League Cup second round victory over Newport County. He also started in the following round against Arsenal and helped to keep the score at 1–1 before the Gunners sealed victory on penalties. The injury to Ben Foster allowed Daniels to continue as second-choice goalkeeper behind Boaz Myhill until 14 December 2013, when he received his final first team call up of the 2013–14 season.
Daniels was called up for two Premier League matches in October and November 2014, but remained an unused substitute on both occasions. In the final year of his contract, he left the club on 22 January 2015, having made just three first team appearances during eight-and-a-half years as a professional at The Hawthorns.
On 25 January 2008, Daniels joined Scottish Premier League club Motherwell on loan for the remainder of the 2007–08 season. He made the first senior appearance of his career with a start in a 2–1 defeat to Celtic on 3 May 2008. He made one further appearance before his loan expired.
Daniels joined League Two club Shrewsbury Town on a season-long loan on 1 August 2008. He had a successful season, helping the Shrews to a 7th-place finish and a playoff semi-final matchup with Bury. Despite man of the match performances in the semi-final second leg versus Bury and then in the final versus Gillingham, a 1–0 defeat at Wembley Stadium consigned the Shrews to another season in League Two. Daniels made 44 appearances during the 2008–09 season.
Daniels spent the entire 2009–10 season on loan at League One club Tranmere Rovers. He made 45 appearances in a season in which Rovers narrowly avoided relegation to League Two.
On 14 July 2010, it was announced that Daniels joined League One club Bristol Rovers on a season-long loan. A back injury suffered during pre-season led to the termination of his loan before the beginning of the regular season.
Daniels joined League One club Charlton Athletic on an emergency 28-day loan on 17 September 2010, as cover for injured second-choice goalkeeper Robert Elliot. He was an unused substitute on two occasions and failed to make an appearance before his loan expired.
On 2 December 2010, a goalkeeping injury crisis at League One club Rochdale saw Daniels join the club on a seven-day emergency loan. The loan was extended for a further seven days, but he made just one appearance for the club before his loan expired.
On 5 January 2011, Daniels rejoined Bristol Rovers on loan until the end of the 2010–11 season. He made 9 appearances during the remainder of a dreadful season for the Gas, in which the club was relegated to League Two.
Daniels joined League Two club Southend United on a one-month loan on 25 October 2011, as cover for injured first-choice goalkeeper Glenn Morris. The loan was extended for a second month and Daniels made 15 appearances before returning to West Bromwich Albion.
On 22 January 2015, Daniels signed a two-and-a-half year contract with League One club Scunthorpe United for an undisclosed fee. The Iron were without first and second-choice goalkeepers Sam Slocombe and James Severn due to broken arms. Daniels made 23 appearances in what remained of the 2014–15 season, appearing in every minute of every match. He made 44 and 42 appearances respectively during the 2015–16 and the 2016–17 seasons and kept more clean sheets than any other goalkeeper in League One during that period, with 27 in 78 matches. Daniels departed the club in May 2017 after his contract expired. He made 109 appearances during his two-and-a-half year spell at Glanford Park.
On 24 May 2017, Daniels joined Championship club Brentford on a free transfer and signed a three-year contract with an option for a further year. He made his debut for the club with a start in a 3–1 League Cup first round extra time victory over AFC Wimbledon on 8 August 2017.
Daniels made his international debut with a start in a 2–1 victory for England U18 over Slovenia in April 2006. He won two caps for the England U19 team in September and October 2006 in matches versus the Netherlands U19 and Austria U19.As of match played 19 September 2017.