The 21-year-old has made 46 appearances for Saints since joining them from amateur club Wigan St Judes in 2011, and was their leading scorer in 2012 with 48 goals and 148 points.
"Tommy is a promising young player who has worked hard and taken his opportunities when they have come along," said Brown.
"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.
"I know I still have a lot to learn. I believe I am at the right place to do that and I am excited about the future."