Morrison was born in Bury St Edmunds, Suffolk and grew up in nearby Haverhill, attending Castle Manor School. He started his football career with Cambridge United, where he came through their youth academy and at the age of 15 became the youngest player to ever feature for their reserve side. He made his debut for Cambridge United in October 2005 against Halifax Town when he was aged 17, and was voted young player of the year for three years in row between 2006 and 2008. He appeared for England C – the team that represents England at semi-professional level – against Finland in November 2007 and against Wales in May 2008 when England retained the Four Nations Tournament champions title.
Morrison joined Leicester City on 2 July 2008, signing a two-year contract for an undisclosed fee. Pleased at joining Leicester, Morrison believed his transfer was in the best interests of Cambridge, who could have lost him on a free transfer. He saw manager Nigel Pearson as his mentor due to his past experience as a defender. Morrison made his professional debut in a 2–0 win over Milton Keynes Dons on 9 August, scoring his first goal in a 4–2 win over Huddersfield Town on 24 January 2009. He returned to the first-team line-up in November 2008 after Patrick Kisnorbo was ruled out by injury. Helping Leicester win promotion as champions, he ended their last home game of the season by scoring two goals against Scunthorpe United on 24 April, the night they received the League One trophy.
Happy to fight for a first-team spot in the 2009–10 season, Morrison's squad number was changed from 15 to 4. On 6 October 2009, Morrison signed a two-year contract extension with Leicester, keeping him at the club until June 2012. He scored his first goal of the season in a 2–1 home win over Sheffield United on Boxing Day. Morrison took over the right back role in January 2010, after a poor display from teammate Robbie Neilson.
On 7 January 2011, Morrison signed for Sheffield Wednesday on a three-and-a-half-year contract for an undisclosed fee.
On 12 July 2011, Morrison joined League One side Charlton Athletic on a three-year contract for an undisclosed fee. He quickly established himself as a key member of Chris Powell's team, winning League One Player of the Month for November 2011. He established himself as the team's first choice centre-half during the 2012–13 Championship campaign, in which the Addicks finished in ninth place. On 24 June 2014, Morrison signed a two-year contract extension, keeping him at the club until 2016.
Morrison joined Birmingham City on 31 October 2014 on a two-month emergency loan. He went straight into the starting eleven for the following day's goalless draw at Wolverhampton Wanderers, and kept his place thereafter, establishing himself as centre-back of choice alongside captain Paul Robinson. In December, it was announced that Morrison would sign a three-and-a-half-year contract with Birmingham once his loan ended and the January transfer window opened. His loan was initially extended for a few days to ensure his eligibility for the third-round FA Cup tie against Blyth Spartans, when he captained the team, and the permanent move was confirmed on 5 January 2015.
Morrison has represented England at semi professional level during his time at Cambridge United playing for the England C, sometimes known as the National Game XI. He played against Finland in November 2007 and against Wales in May 2008 when England retained the Four Nations Tournament champions title.As of match played 16 September 2017
Leicester CityFootball League One: 2008–09
Charlton AthleticFootball League One: 2011–12
IndividualPFA League One Team of the Year: 2011–12