He made his Pompey debut against Millwall in October 2010 and scored his first goal for the club just days later as the Blues beat Hull 2-1 at the KC Stadium.
It was at the back where the 26-year-old blossomed when switching from full-back to centre-half, helping the Blues keep six straight clean sheets.
First goal: Halford scores for Portsmouth in The Championship against Hull
Pompey chief executive David Lampitt said: 'Greg is a quality, versatile, young player who proved his worth for us on loan last season as part of a defence that kept six straight clean sheets during February and March.
'We're very pleased he has now signed a permanent deal with us and are very much looking for him to push on and build on his progress last season.'
Halford began his career at Colchester, where he progressed through their youth set-up into the first team.
After making more than 150 appearances for Colchester, Halford left Layer Road in January 2007 for a brief spell at Reading, before joining Sunderland later that same year.
Halford did not feature prominently during his time at the Stadium of Light, spending much of his two years there on loan - first to Charlton for four months and then to Sheffield United for a season.
In 2009 he joined Wolves where he made 17 Premier League appearances
All the latest Wolves news, features and opinionJohnson set for Wolves switch after ?7m fee agreed with BirminghamClub-by-club guide to all the Barclays Premier League summer transfersCountdown to kick-off: Our guide to all the Premier League pre-season fixtures