Armstrong's arrival helps fill the void left by the departure of last season's top goalscorer Danny Ings to Aston Villa earlier this month.
"It's unbelievable to be here - such a massive club with a great fanbase and it's just something that I'm really looking forward to," said the 24-year-old, who scored 28 goals in the Championship last season.
"I thought it was perfect as my next step. I wanted to get back to the Premier League from what I've done for Blackburn, so I'm over the moon."
Saints also announced the signing of Chelsea attacker Armando Broja on a season-long loan on Tuesday.
The 19-year-old signed a five-year contract with the European champions in July after impressing on loan at Vitesse Arnhem last season.
"Armando is a very talented player who we were impressed by last season," said Southampton manager Ralph Hasenhuttl.
"He is young, but he comes now with a full season of experience in senior football with a good team, and he brings a lot of qualities that can help us."
The Saints start their 2021-22 campaign away to Everton on Saturday.