The 21-year-old has gone on to make 46 appearances for the club since making his debut in February 2011.
"Tommy is a promising young player who has worked hard and taken his opportunities when they have come along," head coach Nathan Brown told the club's official website.
"He is a consistent performer in training and understands the dedication that is needed to become not only a member of the first team at Saints but a rugby league professional.
"If he continues to work hard then he has a very promising future in the game."
Makinson added: "I'm over the moon to have signed this contract and I'm looking forward to continuing my career and development at Saints."
The full-back has scored 25 tries for the Saints.