Born in Huyton, Merseyside, Nicholls signed scholarship forms with Wigan Athletic in the summer of 2009. After a series of impressive performances for the reserve team, he appeared for the first-team as a substitute for the first time in January 2010 in an match against Hull City. Later in the month he signed a two and a half-year professional contract with the club
In November 2010, Nicholls joined Hartlepool United on a one-month loan, but failed to make a first-team appearance.
He joined Shrewsbury Town on a similar loan deal in January 2011, followed by a loan spell at Sheffield Wednesday. In January 2012, Nicholls extended his contract at Wigan until 2014.
On 24 February 2012, he signed for Accrington Stanley on loan until the end of the 2011-2012 season, making his debut against Swindon Town the next day. On 5 May 2013, Nicholls competed in the League Two Play-offs semi-final second leg against Cheltenham Town at Whaddon Road, putting in a man-of-the-match performance, pulling off a string of outstanding saves – Including saving a penalty – as his team progressed to the final.
On 27 October 2013, Nicholls made his League debut for Wigan Athletic in a 0-0 draw against Charlton Athletic.
He then made his home debut the following Wednesday keeping a clean sheet again in another 0-0 draw against Queens Park Rangers. On 11 September 2015, Nicholls joined League Two side Bristol Rovers on a three-month loan. Nicholls returned to his original club, after several first team performances whilst on loan to Rovers.
In 2010, Nicholls was named in the England Under-19s squad that reached the semi-finals of the Union of European Football Associations European Under-19 Championships, but did not make an appearance in the tournament.
He made his debut for the team in February 2011 in a 1–0 defeat against Germany.