Walcott’s contract at Goodison Park was set to expire this summer, having spent this season on loan at the Saints, who he began his professional career with.
He is now set to sign a two-year deal with Ralph Hasenhuttl’s club after a loan spell which has seen him score three goals in 22 appearances.
Walcott, 32, joined Everton in January 2018 for £20 million after a 12-year spell at Arsenal, and went on to net 11 times in 85 outings for the club.
But he was allowed to leave by Carlo Ancelotti on deadline day of last summer’s transfer window, having only featured for Everton this term against Salford in the EFL Cup and as a late substitute against Brighton in the Premier League.
Walcott, who also has 47 England caps, told Southampton’s official website:
“I’m not sure I can properly express how happy I am about this. Southampton is a club that means so much to me, and it has been incredibly special for me to have spent this season back at St Mary’s. But to now have the opportunity to return for a further two years means such a great deal to me, both personally and professionally.
“I would like to say a huge thank you to the club, my teammates and the fans for making me feel so welcome back here, and I can’t wait to continue pulling on the shirt in the next couple of seasons. Hopefully in that time we can make a few more special memories too.
“I would also like to say thank you to everyone at Everton, who have been so good to me throughout my time with the club, and I wish them every success in the future.”