Southampton confirmed the move on their official Twitter account, with Inter midfielder Saphir Taider moving in the opposite direction on loan for the 2014-15 campaign.
Italy international Osvaldo moved to St Mary's for a club record fee reported to be £12.8 million just a year ago.
His stay at the south-coast club was blighted by controversy, as he was fined for his part in a touchline fracas in a fixture with Newcastle United last December, before being suspended by the club in January this year for an alleged training ground fight with team-mate Jose Fonte.
Osvaldo spent the latter half of the previous campaign on loan at Juventus and Southampton revealed last month that they were looking to sell the 28-year-old after he failed to report for pre-season training.
The Premier League club on Wednesday confirmed that Osvaldo had moved to San Siro, with Algeria international Taider joining Ronald Koeman's new-look squad ahead of the new season.
"We are pleased to announe that Saphir Taider has joined Southampton on a season-long loan from Inter," Southampton posted on Twitter.
"Meanwhile, Dani Osvaldo moves in the opposite direction, joining Inter on loan for the 2014-15 campaign."
Osvaldo becomes the latest acquisition for Walter Mazzarri as the Inter coach looks to build a squad capable of an assault on the Serie A title this season.
The 28-year-old joins the likes of Nemanja Vidic and Yann M'Vila in moving to the Milan club, while Cardiff City midfielder Gary Medel is reportedly set to join.
Taider, who featured for Algeria at the World Cup, bolsters Koeman's squad as the Dutchman continues to rebuild following the departures of Luke Shaw, Adam Lallana, Rickie Lambert, Dejan Lovren and Calum Chambers.
The 22-year-old former Bologna man joins fellow new boys Graziano Pelle, Dusan Tadic and Ryan Bertrand at St Mary's.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.