The 22-year-old, who finished 10th in the Saints' best and fairest in 2012, had been due to come out of contract at the end of this season.
"I love playing for the Saints and I was lucky enough for them to offer me another extension," Steven said on Thursday.
St Kilda coach Scott Watters said he was looking forward to the continued development of the former Lorne junior.
"Jack is a key component of our midfield this year," Watters said.
"At 22 years of age he has completed his apprenticeship and is ready for greater responsibility and challenges.
"This pre-season his growing maturity and professionalism has been a standout."
Steven has had his off-field issues; he was suspended for six weeks and fined $5000 for his part in a night out during St Kilda's 2011 pre-season training camp in New Zealand, in which players broke curfew and mixed alcohol with sleeping pills.
And he was handed another one-match ban after registering a blood alcohol level of 0.08 when pulled over while driving to training in July 2012.
But he has also shown enormous on-field talent, earning a NAB Rising Star nomination in 2011 and playing 42 of a possible 45 games in the past two seasons.
Jack Steven is a midfielder in AFL Fantasy. He averaged 84 points in 2012. Register your team at our AFL Fantasy hub.