The Uruguay international, a free agent since leaving Juventus last June, has been in talks with the Premier League club for some time after rejecting an offer from AC Milan.
The 29-year-old has now finalised his move to St. Mary's Stadium and is expected to join his new team-mates for their training camp in Spain.
Caceres told Southampton's official website: "I am very happy to have signed for what is an important club in English football. I am looking forward to getting started with my new team-mates.
"Of all of the options that I had, I think that the best option for me was to come to Southampton. I am extremely happy to have joined this club."
Director of football Les Reed hopes Caceres can bring much-needed experience to the team, especially in the absence of the injured Virgil van Dijk.
"Martin is a great talent, who has played at the very top level and won many trophies and medals," he said. "He is a very experienced international player for Uruguay and has enjoyed notable success with both Juventus and Barcelona.
"In a tough situation for us, losing Virgil to injury, he will bring experience, talent and character. He has played in the biggest of games, and will provide depth to our squad.
"Two days of extensive medicals and tough fitness tests have further demonstrated his desire and positive personality. I know Martin can't wait to start playing again. We welcome him to St Mary's, and his family into our family."
Caceres could make his debut in the EFL Cup final against Manchester United on February 26, although his lack of match fitness means a start at Wembley is unlikely.