Nathan Thompson is Pompey’s first signing under new manager Kenny Jackett.
The 26-year-old has joined on a two-year deal after running down his contract at Swindon.
Thompson, who can play in the centre of defence, right-back or in midfield, was captain of the Robins team that was relegated from League One last season.
He made 36 appearances for Swindon last term, scoring twice.
In total, Thompson made 157 appearances for the Wiltshire club after graduating through their academy system.
He said: ‘I wanted to sign for a club of this size.
‘It’s an exciting opportunity and one I’m looking forward to.
‘It was about the potential this club has, and, with the new owners it’s a great opportunity.’