The 22-year-old is a product of the Saints' youth system and has featured 79 times since his debut in 2013.
Percival made his England debut in the 2016 Four Nations and has made three appearances for the national side.
"I love this club. I have been here since I was 12 years old and I want to help it win more trophies. That is my aim," he said.
"I'm happy here. I love playing and love the friends I have at this club and the team around me."
St Helens and England centre Mark Percival has signed a new four-year deal until 2021.