After an injury-disrupted start to the season, Johnson made his NRL debut against the Sydney Roosters in June, going on to play 16 first-grade games.
The announcement of Johnson's contract extension comes a week after confirmation experienced Kiwi international Thomas Leuluai is to return to the Warriors in 2013 and follows the announcement that off-contract standoff James Maloney will return to Australia after the 2012 season.
"I've really enjoyed playing alongside Jimmy and learning from him," said Johnson.
"Hopefully we'll have the chance to improve our combination again next year.
"While it is disappointing Jimmy has made the decision to finish up here at the end of 2012, it's great for us that Thomas is coming back to the club. His experience in tests and Super League and Challenge Cup finals will be a big help in my development."
Warriors head coach Brian McClennan said retaining Johnson until the end of the 2014 season was critical to the club's future.
"I've really enjoyed watching Shaun's development," he said.
"He has come right through the club's system and I'm excited about working with him to help him reach his potential."