Johnson played 99 times for Portsmouth and played in the 2008 FA Cup Final as Portsmouth beat Cardiff City 1–0. Johnson moved to Liverpool in the summer of 2009 for a £17.5 million fee. Johnson spent six seasons at Anfield making 200 appearances which included victory in the 2012 League Cup Final. He joined Stoke City in July 2015 on a free transfer, and made 64 appearances over three seasons before retiring.