Fellow striker Connolly, who has 41 Republic of Ireland caps, has played for the likes of Sunderland, West Ham and Wigan. The 35-year-old had been a free agent since leaving the Saints at the end of last season.
"This is an historic club with a great tradition," Connolly told Pompey's official website.
"I'm very honoured to become a Portsmouth player.
"It's a big challenge, but when I joined Sunderland in 2006 they were fourth bottom of the Championship and we ended up winning the league, so it doesn't faze me."