The winger will spend the rest of the campaign on the South Coast, where he emerged through the youth academy before joining Arsenal in 2006.
Walcott has only played 12 minutes for The Toffees so far this season and decided that he would have a better chance of getting game time at his boyhood club.
He told Sky Sports News: "I've been looking after myself. I've not been able to get the minutes in but the competition is very high and obviously Everton have started off very well.
"I just felt like it was time for me to play football elsewhere. I can't thank Everton and Southampton enough for getting this done.
"I want to work hard and try to get Southampton to that next level. With my old head I can help the young players coming through as well."
Walcott, who has played 47 times for England, revealed that his return to Southampton has been driven by emotion.
The 31-year-old star said: "I had a few opportunities from other clubs, but as soon as Southampton came in for me, it's part of me and has made me into the player I am. It's in my heart.
"I will probably cry, I bet, when I first play, and it means so much. All the people that made it happen, I can't thank them enough. Honestly, I'm so pleased.
"I was seriously lost for words when Southampton came on the table, and for me it was such an easy decision.
"To get the chance to work with the manager as well and these young players that are coming through, I feel like I've made the right choice."